// Copyright 2024 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated file. DO NOT EDIT.

// Package compute provides access to the Compute Engine API.
//
// For product documentation, see: https://cloud.google.com/compute/
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
//	import "google.golang.org/api/compute/v0.alpha"
//	...
//	ctx := context.Background()
//	computeService, err := compute.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for
// authentication. For information on how to create and obtain Application
// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// # Other authentication options
//
// By default, all available scopes (see "Constants") are used to authenticate.
// To restrict scopes, use [google.golang.org/api/option.WithScopes]:
//
//	computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
//	computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
//	config := &oauth2.Config{...}
//	// ...
//	token, err := config.Exchange(ctx, ...)
//	computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package compute // import "google.golang.org/api/compute/v0.alpha"

import (
	"bytes"
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"strconv"
	"strings"

	googleapi "google.golang.org/api/googleapi"
	internal "google.golang.org/api/internal"
	gensupport "google.golang.org/api/internal/gensupport"
	option "google.golang.org/api/option"
	internaloption "google.golang.org/api/option/internaloption"
	htransport "google.golang.org/api/transport/http"
)

// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
var _ = internal.Version

const apiId = "compute:alpha"
const apiName = "compute"
const apiVersion = "alpha"
const basePath = "https://compute.googleapis.com/compute/alpha/"
const basePathTemplate = "https://compute.UNIVERSE_DOMAIN/compute/alpha/"
const mtlsBasePath = "https://compute.mtls.googleapis.com/compute/alpha/"

// OAuth2 scopes used by this API.
const (
	// See, edit, configure, and delete your Google Cloud data and see the email
	// address for your Google Account.
	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"

	// View and manage your Google Compute Engine resources
	ComputeScope = "https://www.googleapis.com/auth/compute"

	// View your Google Compute Engine resources
	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"

	// Manage your data and permissions in Cloud Storage and see the email address
	// for your Google Account
	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"

	// View your data in Google Cloud Storage
	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"

	// Manage your data in Cloud Storage and see the email address of your Google
	// Account
	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
)

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/cloud-platform",
		"https://www.googleapis.com/auth/compute",
		"https://www.googleapis.com/auth/compute.readonly",
		"https://www.googleapis.com/auth/devstorage.full_control",
		"https://www.googleapis.com/auth/devstorage.read_only",
		"https://www.googleapis.com/auth/devstorage.read_write",
	)
	// NOTE: prepend, so we don't override user-specified scopes.
	opts = append([]option.ClientOption{scopesOption}, opts...)
	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
	client, endpoint, err := htransport.NewClient(ctx, opts...)
	if err != nil {
		return nil, err
	}
	s, err := New(client)
	if err != nil {
		return nil, err
	}
	if endpoint != "" {
		s.BasePath = endpoint
	}
	return s, nil
}

// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
	if client == nil {
		return nil, errors.New("client is nil")
	}
	s := &Service{client: client, BasePath: basePath}
	s.AcceleratorTypes = NewAcceleratorTypesService(s)
	s.Addresses = NewAddressesService(s)
	s.Autoscalers = NewAutoscalersService(s)
	s.BackendBuckets = NewBackendBucketsService(s)
	s.BackendServices = NewBackendServicesService(s)
	s.DiskSettings = NewDiskSettingsService(s)
	s.DiskTypes = NewDiskTypesService(s)
	s.Disks = NewDisksService(s)
	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
	s.FirewallPolicies = NewFirewallPoliciesService(s)
	s.Firewalls = NewFirewallsService(s)
	s.ForwardingRules = NewForwardingRulesService(s)
	s.FutureReservations = NewFutureReservationsService(s)
	s.GlobalAddresses = NewGlobalAddressesService(s)
	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
	s.GlobalOperations = NewGlobalOperationsService(s)
	s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s)
	s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s)
	s.HealthChecks = NewHealthChecksService(s)
	s.HttpHealthChecks = NewHttpHealthChecksService(s)
	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
	s.ImageFamilyViews = NewImageFamilyViewsService(s)
	s.Images = NewImagesService(s)
	s.InstanceGroupManagerResizeRequests = NewInstanceGroupManagerResizeRequestsService(s)
	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
	s.InstanceGroups = NewInstanceGroupsService(s)
	s.InstanceSettings = NewInstanceSettingsService(s)
	s.InstanceTemplates = NewInstanceTemplatesService(s)
	s.Instances = NewInstancesService(s)
	s.InstantSnapshotGroups = NewInstantSnapshotGroupsService(s)
	s.InstantSnapshots = NewInstantSnapshotsService(s)
	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
	s.InterconnectLocations = NewInterconnectLocationsService(s)
	s.InterconnectRemoteLocations = NewInterconnectRemoteLocationsService(s)
	s.Interconnects = NewInterconnectsService(s)
	s.LicenseCodes = NewLicenseCodesService(s)
	s.Licenses = NewLicensesService(s)
	s.MachineImages = NewMachineImagesService(s)
	s.MachineTypes = NewMachineTypesService(s)
	s.NetworkAttachments = NewNetworkAttachmentsService(s)
	s.NetworkEdgeSecurityServices = NewNetworkEdgeSecurityServicesService(s)
	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
	s.NetworkFirewallPolicies = NewNetworkFirewallPoliciesService(s)
	s.NetworkPlacements = NewNetworkPlacementsService(s)
	s.NetworkProfiles = NewNetworkProfilesService(s)
	s.Networks = NewNetworksService(s)
	s.NodeGroups = NewNodeGroupsService(s)
	s.NodeTemplates = NewNodeTemplatesService(s)
	s.NodeTypes = NewNodeTypesService(s)
	s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s)
	s.PacketMirrorings = NewPacketMirroringsService(s)
	s.Projects = NewProjectsService(s)
	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
	s.RegionAutoscalers = NewRegionAutoscalersService(s)
	s.RegionBackendServices = NewRegionBackendServicesService(s)
	s.RegionCommitments = NewRegionCommitmentsService(s)
	s.RegionDiskSettings = NewRegionDiskSettingsService(s)
	s.RegionDiskTypes = NewRegionDiskTypesService(s)
	s.RegionDisks = NewRegionDisksService(s)
	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
	s.RegionHealthChecks = NewRegionHealthChecksService(s)
	s.RegionInstanceGroupManagerResizeRequests = NewRegionInstanceGroupManagerResizeRequestsService(s)
	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
	s.RegionInstanceTemplates = NewRegionInstanceTemplatesService(s)
	s.RegionInstances = NewRegionInstancesService(s)
	s.RegionInstantSnapshotGroups = NewRegionInstantSnapshotGroupsService(s)
	s.RegionInstantSnapshots = NewRegionInstantSnapshotsService(s)
	s.RegionMultiMigs = NewRegionMultiMigsService(s)
	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
	s.RegionNetworkFirewallPolicies = NewRegionNetworkFirewallPoliciesService(s)
	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
	s.RegionOperations = NewRegionOperationsService(s)
	s.RegionSecurityPolicies = NewRegionSecurityPoliciesService(s)
	s.RegionSnapshotSettings = NewRegionSnapshotSettingsService(s)
	s.RegionSnapshots = NewRegionSnapshotsService(s)
	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
	s.RegionSslPolicies = NewRegionSslPoliciesService(s)
	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
	s.RegionTargetTcpProxies = NewRegionTargetTcpProxiesService(s)
	s.RegionUrlMaps = NewRegionUrlMapsService(s)
	s.RegionZones = NewRegionZonesService(s)
	s.Regions = NewRegionsService(s)
	s.Reservations = NewReservationsService(s)
	s.ResourcePolicies = NewResourcePoliciesService(s)
	s.Routers = NewRoutersService(s)
	s.Routes = NewRoutesService(s)
	s.SecurityPolicies = NewSecurityPoliciesService(s)
	s.ServiceAttachments = NewServiceAttachmentsService(s)
	s.SnapshotSettings = NewSnapshotSettingsService(s)
	s.Snapshots = NewSnapshotsService(s)
	s.SslCertificates = NewSslCertificatesService(s)
	s.SslPolicies = NewSslPoliciesService(s)
	s.StoragePoolTypes = NewStoragePoolTypesService(s)
	s.StoragePools = NewStoragePoolsService(s)
	s.Subnetworks = NewSubnetworksService(s)
	s.TargetGrpcProxies = NewTargetGrpcProxiesService(s)
	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
	s.TargetInstances = NewTargetInstancesService(s)
	s.TargetPools = NewTargetPoolsService(s)
	s.TargetSslProxies = NewTargetSslProxiesService(s)
	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
	s.UrlMaps = NewUrlMapsService(s)
	s.VpnGateways = NewVpnGatewaysService(s)
	s.VpnTunnels = NewVpnTunnelsService(s)
	s.ZoneOperations = NewZoneOperationsService(s)
	s.ZoneQueuedResources = NewZoneQueuedResourcesService(s)
	s.Zones = NewZonesService(s)
	return s, nil
}

type Service struct {
	client    *http.Client
	BasePath  string // API endpoint base URL
	UserAgent string // optional additional User-Agent fragment

	AcceleratorTypes *AcceleratorTypesService

	Addresses *AddressesService

	Autoscalers *AutoscalersService

	BackendBuckets *BackendBucketsService

	BackendServices *BackendServicesService

	DiskSettings *DiskSettingsService

	DiskTypes *DiskTypesService

	Disks *DisksService

	ExternalVpnGateways *ExternalVpnGatewaysService

	FirewallPolicies *FirewallPoliciesService

	Firewalls *FirewallsService

	ForwardingRules *ForwardingRulesService

	FutureReservations *FutureReservationsService

	GlobalAddresses *GlobalAddressesService

	GlobalForwardingRules *GlobalForwardingRulesService

	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService

	GlobalOperations *GlobalOperationsService

	GlobalOrganizationOperations *GlobalOrganizationOperationsService

	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService

	HealthChecks *HealthChecksService

	HttpHealthChecks *HttpHealthChecksService

	HttpsHealthChecks *HttpsHealthChecksService

	ImageFamilyViews *ImageFamilyViewsService

	Images *ImagesService

	InstanceGroupManagerResizeRequests *InstanceGroupManagerResizeRequestsService

	InstanceGroupManagers *InstanceGroupManagersService

	InstanceGroups *InstanceGroupsService

	InstanceSettings *InstanceSettingsService

	InstanceTemplates *InstanceTemplatesService

	Instances *InstancesService

	InstantSnapshotGroups *InstantSnapshotGroupsService

	InstantSnapshots *InstantSnapshotsService

	InterconnectAttachments *InterconnectAttachmentsService

	InterconnectLocations *InterconnectLocationsService

	InterconnectRemoteLocations *InterconnectRemoteLocationsService

	Interconnects *InterconnectsService

	LicenseCodes *LicenseCodesService

	Licenses *LicensesService

	MachineImages *MachineImagesService

	MachineTypes *MachineTypesService

	NetworkAttachments *NetworkAttachmentsService

	NetworkEdgeSecurityServices *NetworkEdgeSecurityServicesService

	NetworkEndpointGroups *NetworkEndpointGroupsService

	NetworkFirewallPolicies *NetworkFirewallPoliciesService

	NetworkPlacements *NetworkPlacementsService

	NetworkProfiles *NetworkProfilesService

	Networks *NetworksService

	NodeGroups *NodeGroupsService

	NodeTemplates *NodeTemplatesService

	NodeTypes *NodeTypesService

	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService

	PacketMirrorings *PacketMirroringsService

	Projects *ProjectsService

	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService

	PublicDelegatedPrefixes *PublicDelegatedPrefixesService

	RegionAutoscalers *RegionAutoscalersService

	RegionBackendServices *RegionBackendServicesService

	RegionCommitments *RegionCommitmentsService

	RegionDiskSettings *RegionDiskSettingsService

	RegionDiskTypes *RegionDiskTypesService

	RegionDisks *RegionDisksService

	RegionHealthCheckServices *RegionHealthCheckServicesService

	RegionHealthChecks *RegionHealthChecksService

	RegionInstanceGroupManagerResizeRequests *RegionInstanceGroupManagerResizeRequestsService

	RegionInstanceGroupManagers *RegionInstanceGroupManagersService

	RegionInstanceGroups *RegionInstanceGroupsService

	RegionInstanceTemplates *RegionInstanceTemplatesService

	RegionInstances *RegionInstancesService

	RegionInstantSnapshotGroups *RegionInstantSnapshotGroupsService

	RegionInstantSnapshots *RegionInstantSnapshotsService

	RegionMultiMigs *RegionMultiMigsService

	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService

	RegionNetworkFirewallPolicies *RegionNetworkFirewallPoliciesService

	RegionNotificationEndpoints *RegionNotificationEndpointsService

	RegionOperations *RegionOperationsService

	RegionSecurityPolicies *RegionSecurityPoliciesService

	RegionSnapshotSettings *RegionSnapshotSettingsService

	RegionSnapshots *RegionSnapshotsService

	RegionSslCertificates *RegionSslCertificatesService

	RegionSslPolicies *RegionSslPoliciesService

	RegionTargetHttpProxies *RegionTargetHttpProxiesService

	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService

	RegionTargetTcpProxies *RegionTargetTcpProxiesService

	RegionUrlMaps *RegionUrlMapsService

	RegionZones *RegionZonesService

	Regions *RegionsService

	Reservations *ReservationsService

	ResourcePolicies *ResourcePoliciesService

	Routers *RoutersService

	Routes *RoutesService

	SecurityPolicies *SecurityPoliciesService

	ServiceAttachments *ServiceAttachmentsService

	SnapshotSettings *SnapshotSettingsService

	Snapshots *SnapshotsService

	SslCertificates *SslCertificatesService

	SslPolicies *SslPoliciesService

	StoragePoolTypes *StoragePoolTypesService

	StoragePools *StoragePoolsService

	Subnetworks *SubnetworksService

	TargetGrpcProxies *TargetGrpcProxiesService

	TargetHttpProxies *TargetHttpProxiesService

	TargetHttpsProxies *TargetHttpsProxiesService

	TargetInstances *TargetInstancesService

	TargetPools *TargetPoolsService

	TargetSslProxies *TargetSslProxiesService

	TargetTcpProxies *TargetTcpProxiesService

	TargetVpnGateways *TargetVpnGatewaysService

	UrlMaps *UrlMapsService

	VpnGateways *VpnGatewaysService

	VpnTunnels *VpnTunnelsService

	ZoneOperations *ZoneOperationsService

	ZoneQueuedResources *ZoneQueuedResourcesService

	Zones *ZonesService
}

func (s *Service) userAgent() string {
	if s.UserAgent == "" {
		return googleapi.UserAgent
	}
	return googleapi.UserAgent + " " + s.UserAgent
}

func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
	rs := &AcceleratorTypesService{s: s}
	return rs
}

type AcceleratorTypesService struct {
	s *Service
}

func NewAddressesService(s *Service) *AddressesService {
	rs := &AddressesService{s: s}
	return rs
}

type AddressesService struct {
	s *Service
}

func NewAutoscalersService(s *Service) *AutoscalersService {
	rs := &AutoscalersService{s: s}
	return rs
}

type AutoscalersService struct {
	s *Service
}

func NewBackendBucketsService(s *Service) *BackendBucketsService {
	rs := &BackendBucketsService{s: s}
	return rs
}

type BackendBucketsService struct {
	s *Service
}

func NewBackendServicesService(s *Service) *BackendServicesService {
	rs := &BackendServicesService{s: s}
	return rs
}

type BackendServicesService struct {
	s *Service
}

func NewDiskSettingsService(s *Service) *DiskSettingsService {
	rs := &DiskSettingsService{s: s}
	return rs
}

type DiskSettingsService struct {
	s *Service
}

func NewDiskTypesService(s *Service) *DiskTypesService {
	rs := &DiskTypesService{s: s}
	return rs
}

type DiskTypesService struct {
	s *Service
}

func NewDisksService(s *Service) *DisksService {
	rs := &DisksService{s: s}
	return rs
}

type DisksService struct {
	s *Service
}

func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
	rs := &ExternalVpnGatewaysService{s: s}
	return rs
}

type ExternalVpnGatewaysService struct {
	s *Service
}

func NewFirewallPoliciesService(s *Service) *FirewallPoliciesService {
	rs := &FirewallPoliciesService{s: s}
	return rs
}

type FirewallPoliciesService struct {
	s *Service
}

func NewFirewallsService(s *Service) *FirewallsService {
	rs := &FirewallsService{s: s}
	return rs
}

type FirewallsService struct {
	s *Service
}

func NewForwardingRulesService(s *Service) *ForwardingRulesService {
	rs := &ForwardingRulesService{s: s}
	return rs
}

type ForwardingRulesService struct {
	s *Service
}

func NewFutureReservationsService(s *Service) *FutureReservationsService {
	rs := &FutureReservationsService{s: s}
	return rs
}

type FutureReservationsService struct {
	s *Service
}

func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
	rs := &GlobalAddressesService{s: s}
	return rs
}

type GlobalAddressesService struct {
	s *Service
}

func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
	rs := &GlobalForwardingRulesService{s: s}
	return rs
}

type GlobalForwardingRulesService struct {
	s *Service
}

func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
	rs := &GlobalNetworkEndpointGroupsService{s: s}
	return rs
}

type GlobalNetworkEndpointGroupsService struct {
	s *Service
}

func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
	rs := &GlobalOperationsService{s: s}
	return rs
}

type GlobalOperationsService struct {
	s *Service
}

func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
	rs := &GlobalOrganizationOperationsService{s: s}
	return rs
}

type GlobalOrganizationOperationsService struct {
	s *Service
}

func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
	rs := &GlobalPublicDelegatedPrefixesService{s: s}
	return rs
}

type GlobalPublicDelegatedPrefixesService struct {
	s *Service
}

func NewHealthChecksService(s *Service) *HealthChecksService {
	rs := &HealthChecksService{s: s}
	return rs
}

type HealthChecksService struct {
	s *Service
}

func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
	rs := &HttpHealthChecksService{s: s}
	return rs
}

type HttpHealthChecksService struct {
	s *Service
}

func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
	rs := &HttpsHealthChecksService{s: s}
	return rs
}

type HttpsHealthChecksService struct {
	s *Service
}

func NewImageFamilyViewsService(s *Service) *ImageFamilyViewsService {
	rs := &ImageFamilyViewsService{s: s}
	return rs
}

type ImageFamilyViewsService struct {
	s *Service
}

func NewImagesService(s *Service) *ImagesService {
	rs := &ImagesService{s: s}
	return rs
}

type ImagesService struct {
	s *Service
}

func NewInstanceGroupManagerResizeRequestsService(s *Service) *InstanceGroupManagerResizeRequestsService {
	rs := &InstanceGroupManagerResizeRequestsService{s: s}
	return rs
}

type InstanceGroupManagerResizeRequestsService struct {
	s *Service
}

func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
	rs := &InstanceGroupManagersService{s: s}
	return rs
}

type InstanceGroupManagersService struct {
	s *Service
}

func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
	rs := &InstanceGroupsService{s: s}
	return rs
}

type InstanceGroupsService struct {
	s *Service
}

func NewInstanceSettingsService(s *Service) *InstanceSettingsService {
	rs := &InstanceSettingsService{s: s}
	return rs
}

type InstanceSettingsService struct {
	s *Service
}

func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
	rs := &InstanceTemplatesService{s: s}
	return rs
}

type InstanceTemplatesService struct {
	s *Service
}

func NewInstancesService(s *Service) *InstancesService {
	rs := &InstancesService{s: s}
	return rs
}

type InstancesService struct {
	s *Service
}

func NewInstantSnapshotGroupsService(s *Service) *InstantSnapshotGroupsService {
	rs := &InstantSnapshotGroupsService{s: s}
	return rs
}

type InstantSnapshotGroupsService struct {
	s *Service
}

func NewInstantSnapshotsService(s *Service) *InstantSnapshotsService {
	rs := &InstantSnapshotsService{s: s}
	return rs
}

type InstantSnapshotsService struct {
	s *Service
}

func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
	rs := &InterconnectAttachmentsService{s: s}
	return rs
}

type InterconnectAttachmentsService struct {
	s *Service
}

func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
	rs := &InterconnectLocationsService{s: s}
	return rs
}

type InterconnectLocationsService struct {
	s *Service
}

func NewInterconnectRemoteLocationsService(s *Service) *InterconnectRemoteLocationsService {
	rs := &InterconnectRemoteLocationsService{s: s}
	return rs
}

type InterconnectRemoteLocationsService struct {
	s *Service
}

func NewInterconnectsService(s *Service) *InterconnectsService {
	rs := &InterconnectsService{s: s}
	return rs
}

type InterconnectsService struct {
	s *Service
}

func NewLicenseCodesService(s *Service) *LicenseCodesService {
	rs := &LicenseCodesService{s: s}
	return rs
}

type LicenseCodesService struct {
	s *Service
}

func NewLicensesService(s *Service) *LicensesService {
	rs := &LicensesService{s: s}
	return rs
}

type LicensesService struct {
	s *Service
}

func NewMachineImagesService(s *Service) *MachineImagesService {
	rs := &MachineImagesService{s: s}
	return rs
}

type MachineImagesService struct {
	s *Service
}

func NewMachineTypesService(s *Service) *MachineTypesService {
	rs := &MachineTypesService{s: s}
	return rs
}

type MachineTypesService struct {
	s *Service
}

func NewNetworkAttachmentsService(s *Service) *NetworkAttachmentsService {
	rs := &NetworkAttachmentsService{s: s}
	return rs
}

type NetworkAttachmentsService struct {
	s *Service
}

func NewNetworkEdgeSecurityServicesService(s *Service) *NetworkEdgeSecurityServicesService {
	rs := &NetworkEdgeSecurityServicesService{s: s}
	return rs
}

type NetworkEdgeSecurityServicesService struct {
	s *Service
}

func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
	rs := &NetworkEndpointGroupsService{s: s}
	return rs
}

type NetworkEndpointGroupsService struct {
	s *Service
}

func NewNetworkFirewallPoliciesService(s *Service) *NetworkFirewallPoliciesService {
	rs := &NetworkFirewallPoliciesService{s: s}
	return rs
}

type NetworkFirewallPoliciesService struct {
	s *Service
}

func NewNetworkPlacementsService(s *Service) *NetworkPlacementsService {
	rs := &NetworkPlacementsService{s: s}
	return rs
}

type NetworkPlacementsService struct {
	s *Service
}

func NewNetworkProfilesService(s *Service) *NetworkProfilesService {
	rs := &NetworkProfilesService{s: s}
	return rs
}

type NetworkProfilesService struct {
	s *Service
}

func NewNetworksService(s *Service) *NetworksService {
	rs := &NetworksService{s: s}
	return rs
}

type NetworksService struct {
	s *Service
}

func NewNodeGroupsService(s *Service) *NodeGroupsService {
	rs := &NodeGroupsService{s: s}
	return rs
}

type NodeGroupsService struct {
	s *Service
}

func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
	rs := &NodeTemplatesService{s: s}
	return rs
}

type NodeTemplatesService struct {
	s *Service
}

func NewNodeTypesService(s *Service) *NodeTypesService {
	rs := &NodeTypesService{s: s}
	return rs
}

type NodeTypesService struct {
	s *Service
}

func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService {
	rs := &OrganizationSecurityPoliciesService{s: s}
	return rs
}

type OrganizationSecurityPoliciesService struct {
	s *Service
}

func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
	rs := &PacketMirroringsService{s: s}
	return rs
}

type PacketMirroringsService struct {
	s *Service
}

func NewProjectsService(s *Service) *ProjectsService {
	rs := &ProjectsService{s: s}
	return rs
}

type ProjectsService struct {
	s *Service
}

func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
	rs := &PublicAdvertisedPrefixesService{s: s}
	return rs
}

type PublicAdvertisedPrefixesService struct {
	s *Service
}

func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
	rs := &PublicDelegatedPrefixesService{s: s}
	return rs
}

type PublicDelegatedPrefixesService struct {
	s *Service
}

func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
	rs := &RegionAutoscalersService{s: s}
	return rs
}

type RegionAutoscalersService struct {
	s *Service
}

func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
	rs := &RegionBackendServicesService{s: s}
	return rs
}

type RegionBackendServicesService struct {
	s *Service
}

func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
	rs := &RegionCommitmentsService{s: s}
	return rs
}

type RegionCommitmentsService struct {
	s *Service
}

func NewRegionDiskSettingsService(s *Service) *RegionDiskSettingsService {
	rs := &RegionDiskSettingsService{s: s}
	return rs
}

type RegionDiskSettingsService struct {
	s *Service
}

func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
	rs := &RegionDiskTypesService{s: s}
	return rs
}

type RegionDiskTypesService struct {
	s *Service
}

func NewRegionDisksService(s *Service) *RegionDisksService {
	rs := &RegionDisksService{s: s}
	return rs
}

type RegionDisksService struct {
	s *Service
}

func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
	rs := &RegionHealthCheckServicesService{s: s}
	return rs
}

type RegionHealthCheckServicesService struct {
	s *Service
}

func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
	rs := &RegionHealthChecksService{s: s}
	return rs
}

type RegionHealthChecksService struct {
	s *Service
}

func NewRegionInstanceGroupManagerResizeRequestsService(s *Service) *RegionInstanceGroupManagerResizeRequestsService {
	rs := &RegionInstanceGroupManagerResizeRequestsService{s: s}
	return rs
}

type RegionInstanceGroupManagerResizeRequestsService struct {
	s *Service
}

func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
	rs := &RegionInstanceGroupManagersService{s: s}
	return rs
}

type RegionInstanceGroupManagersService struct {
	s *Service
}

func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
	rs := &RegionInstanceGroupsService{s: s}
	return rs
}

type RegionInstanceGroupsService struct {
	s *Service
}

func NewRegionInstanceTemplatesService(s *Service) *RegionInstanceTemplatesService {
	rs := &RegionInstanceTemplatesService{s: s}
	return rs
}

type RegionInstanceTemplatesService struct {
	s *Service
}

func NewRegionInstancesService(s *Service) *RegionInstancesService {
	rs := &RegionInstancesService{s: s}
	return rs
}

type RegionInstancesService struct {
	s *Service
}

func NewRegionInstantSnapshotGroupsService(s *Service) *RegionInstantSnapshotGroupsService {
	rs := &RegionInstantSnapshotGroupsService{s: s}
	return rs
}

type RegionInstantSnapshotGroupsService struct {
	s *Service
}

func NewRegionInstantSnapshotsService(s *Service) *RegionInstantSnapshotsService {
	rs := &RegionInstantSnapshotsService{s: s}
	return rs
}

type RegionInstantSnapshotsService struct {
	s *Service
}

func NewRegionMultiMigsService(s *Service) *RegionMultiMigsService {
	rs := &RegionMultiMigsService{s: s}
	return rs
}

type RegionMultiMigsService struct {
	s *Service
}

func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
	rs := &RegionNetworkEndpointGroupsService{s: s}
	return rs
}

type RegionNetworkEndpointGroupsService struct {
	s *Service
}

func NewRegionNetworkFirewallPoliciesService(s *Service) *RegionNetworkFirewallPoliciesService {
	rs := &RegionNetworkFirewallPoliciesService{s: s}
	return rs
}

type RegionNetworkFirewallPoliciesService struct {
	s *Service
}

func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
	rs := &RegionNotificationEndpointsService{s: s}
	return rs
}

type RegionNotificationEndpointsService struct {
	s *Service
}

func NewRegionOperationsService(s *Service) *RegionOperationsService {
	rs := &RegionOperationsService{s: s}
	return rs
}

type RegionOperationsService struct {
	s *Service
}

func NewRegionSecurityPoliciesService(s *Service) *RegionSecurityPoliciesService {
	rs := &RegionSecurityPoliciesService{s: s}
	return rs
}

type RegionSecurityPoliciesService struct {
	s *Service
}

func NewRegionSnapshotSettingsService(s *Service) *RegionSnapshotSettingsService {
	rs := &RegionSnapshotSettingsService{s: s}
	return rs
}

type RegionSnapshotSettingsService struct {
	s *Service
}

func NewRegionSnapshotsService(s *Service) *RegionSnapshotsService {
	rs := &RegionSnapshotsService{s: s}
	return rs
}

type RegionSnapshotsService struct {
	s *Service
}

func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
	rs := &RegionSslCertificatesService{s: s}
	return rs
}

type RegionSslCertificatesService struct {
	s *Service
}

func NewRegionSslPoliciesService(s *Service) *RegionSslPoliciesService {
	rs := &RegionSslPoliciesService{s: s}
	return rs
}

type RegionSslPoliciesService struct {
	s *Service
}

func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
	rs := &RegionTargetHttpProxiesService{s: s}
	return rs
}

type RegionTargetHttpProxiesService struct {
	s *Service
}

func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
	rs := &RegionTargetHttpsProxiesService{s: s}
	return rs
}

type RegionTargetHttpsProxiesService struct {
	s *Service
}

func NewRegionTargetTcpProxiesService(s *Service) *RegionTargetTcpProxiesService {
	rs := &RegionTargetTcpProxiesService{s: s}
	return rs
}

type RegionTargetTcpProxiesService struct {
	s *Service
}

func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
	rs := &RegionUrlMapsService{s: s}
	return rs
}

type RegionUrlMapsService struct {
	s *Service
}

func NewRegionZonesService(s *Service) *RegionZonesService {
	rs := &RegionZonesService{s: s}
	return rs
}

type RegionZonesService struct {
	s *Service
}

func NewRegionsService(s *Service) *RegionsService {
	rs := &RegionsService{s: s}
	return rs
}

type RegionsService struct {
	s *Service
}

func NewReservationsService(s *Service) *ReservationsService {
	rs := &ReservationsService{s: s}
	return rs
}

type ReservationsService struct {
	s *Service
}

func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
	rs := &ResourcePoliciesService{s: s}
	return rs
}

type ResourcePoliciesService struct {
	s *Service
}

func NewRoutersService(s *Service) *RoutersService {
	rs := &RoutersService{s: s}
	return rs
}

type RoutersService struct {
	s *Service
}

func NewRoutesService(s *Service) *RoutesService {
	rs := &RoutesService{s: s}
	return rs
}

type RoutesService struct {
	s *Service
}

func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
	rs := &SecurityPoliciesService{s: s}
	return rs
}

type SecurityPoliciesService struct {
	s *Service
}

func NewServiceAttachmentsService(s *Service) *ServiceAttachmentsService {
	rs := &ServiceAttachmentsService{s: s}
	return rs
}

type ServiceAttachmentsService struct {
	s *Service
}

func NewSnapshotSettingsService(s *Service) *SnapshotSettingsService {
	rs := &SnapshotSettingsService{s: s}
	return rs
}

type SnapshotSettingsService struct {
	s *Service
}

func NewSnapshotsService(s *Service) *SnapshotsService {
	rs := &SnapshotsService{s: s}
	return rs
}

type SnapshotsService struct {
	s *Service
}

func NewSslCertificatesService(s *Service) *SslCertificatesService {
	rs := &SslCertificatesService{s: s}
	return rs
}

type SslCertificatesService struct {
	s *Service
}

func NewSslPoliciesService(s *Service) *SslPoliciesService {
	rs := &SslPoliciesService{s: s}
	return rs
}

type SslPoliciesService struct {
	s *Service
}

func NewStoragePoolTypesService(s *Service) *StoragePoolTypesService {
	rs := &StoragePoolTypesService{s: s}
	return rs
}

type StoragePoolTypesService struct {
	s *Service
}

func NewStoragePoolsService(s *Service) *StoragePoolsService {
	rs := &StoragePoolsService{s: s}
	return rs
}

type StoragePoolsService struct {
	s *Service
}

func NewSubnetworksService(s *Service) *SubnetworksService {
	rs := &SubnetworksService{s: s}
	return rs
}

type SubnetworksService struct {
	s *Service
}

func NewTargetGrpcProxiesService(s *Service) *TargetGrpcProxiesService {
	rs := &TargetGrpcProxiesService{s: s}
	return rs
}

type TargetGrpcProxiesService struct {
	s *Service
}

func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
	rs := &TargetHttpProxiesService{s: s}
	return rs
}

type TargetHttpProxiesService struct {
	s *Service
}

func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
	rs := &TargetHttpsProxiesService{s: s}
	return rs
}

type TargetHttpsProxiesService struct {
	s *Service
}

func NewTargetInstancesService(s *Service) *TargetInstancesService {
	rs := &TargetInstancesService{s: s}
	return rs
}

type TargetInstancesService struct {
	s *Service
}

func NewTargetPoolsService(s *Service) *TargetPoolsService {
	rs := &TargetPoolsService{s: s}
	return rs
}

type TargetPoolsService struct {
	s *Service
}

func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
	rs := &TargetSslProxiesService{s: s}
	return rs
}

type TargetSslProxiesService struct {
	s *Service
}

func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
	rs := &TargetTcpProxiesService{s: s}
	return rs
}

type TargetTcpProxiesService struct {
	s *Service
}

func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
	rs := &TargetVpnGatewaysService{s: s}
	return rs
}

type TargetVpnGatewaysService struct {
	s *Service
}

func NewUrlMapsService(s *Service) *UrlMapsService {
	rs := &UrlMapsService{s: s}
	return rs
}

type UrlMapsService struct {
	s *Service
}

func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
	rs := &VpnGatewaysService{s: s}
	return rs
}

type VpnGatewaysService struct {
	s *Service
}

func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
	rs := &VpnTunnelsService{s: s}
	return rs
}

type VpnTunnelsService struct {
	s *Service
}

func NewZoneOperationsService(s *Service) *ZoneOperationsService {
	rs := &ZoneOperationsService{s: s}
	return rs
}

type ZoneOperationsService struct {
	s *Service
}

func NewZoneQueuedResourcesService(s *Service) *ZoneQueuedResourcesService {
	rs := &ZoneQueuedResourcesService{s: s}
	return rs
}

type ZoneQueuedResourcesService struct {
	s *Service
}

func NewZonesService(s *Service) *ZonesService {
	rs := &ZonesService{s: s}
	return rs
}

type ZonesService struct {
	s *Service
}

// AWSV4Signature: Contains the configurations necessary to generate a
// signature for access to private storage buckets that support Signature
// Version 4 for authentication. The service name for generating the
// authentication header will always default to 's3'.
type AWSV4Signature struct {
	// AccessKey: The access key used for s3 bucket authentication. Required for
	// updating or creating a backend that uses AWS v4 signature authentication,
	// but will not be returned as part of the configuration when queried with a
	// REST API GET request. @InputOnly
	AccessKey string `json:"accessKey,omitempty"`
	// AccessKeyId: The identifier of an access key used for s3 bucket
	// authentication.
	AccessKeyId string `json:"accessKeyId,omitempty"`
	// AccessKeyVersion: The optional version identifier for the access key. You
	// can use this to keep track of different iterations of your access key.
	AccessKeyVersion string `json:"accessKeyVersion,omitempty"`
	// OriginRegion: The name of the cloud region of your origin. This is a
	// free-form field with the name of the region your cloud uses to host your
	// origin. For example, "us-east-1" for AWS or "us-ashburn-1" for OCI.
	OriginRegion string `json:"originRegion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AWSV4Signature) MarshalJSON() ([]byte, error) {
	type NoMethod AWSV4Signature
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AcceleratorConfig: A specification of the type and number of accelerator
// cards attached to the instance.
type AcceleratorConfig struct {
	// AcceleratorCount: The number of the guest accelerator cards exposed to this
	// instance.
	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
	// AcceleratorType: Full or partial URL of the accelerator type resource to
	// attach to this instance. For example:
	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100
	// If you are creating an instance template, specify only the accelerator name.
	// See GPUs on Compute Engine for a full list of accelerator types.
	AcceleratorType string `json:"acceleratorType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorConfig) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AcceleratorType: Represents an Accelerator Type resource. Google Cloud
// Platform provides graphics processing units (accelerators) that you can add
// to VM instances to improve or accelerate performance when working with
// intensive workloads. For more information, read GPUs on Compute Engine.
type AcceleratorType struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- [Output Only] The deprecation status associated with this
	// accelerator type.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: [Output Only] An optional textual description of the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] The type of the resource. Always compute#acceleratorType
	// for accelerator types.
	Kind string `json:"kind,omitempty"`
	// MaximumCardsPerInstance: [Output Only] Maximum number of accelerator cards
	// allowed per instance.
	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined, fully qualified URL for this
	// resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Zone: [Output Only] The name of the zone where the accelerator type resides,
	// such as us-central1-a. You must specify this field as part of the HTTP
	// request URL. It is not settable as a field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorType) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AcceleratorTypeAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of AcceleratorTypesScopedList resources.
	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#acceleratorTypeAggregatedList for aggregated lists of accelerator
	// types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypeAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AcceleratorTypeAggregatedListWarning: [Output Only] Informational warning
// message.
type AcceleratorTypeAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypeAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AcceleratorTypeAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypeAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AcceleratorTypeList: Contains a list of accelerator types.
type AcceleratorTypeList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of AcceleratorType resources.
	Items []*AcceleratorType `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#acceleratorTypeList for
	// lists of accelerator types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypeList) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypeList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AcceleratorTypeListWarning: [Output Only] Informational warning message.
type AcceleratorTypeListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypeListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AcceleratorTypeListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypeListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AcceleratorTypesScopedList struct {
	// AcceleratorTypes: [Output Only] A list of accelerator types contained in
	// this scope.
	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
	// Warning: [Output Only] An informational warning that appears when the
	// accelerator types list is empty.
	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorTypes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AcceleratorTypesScopedListWarning: [Output Only] An informational warning
// that appears when the accelerator types list is empty.
type AcceleratorTypesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AcceleratorTypesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTypesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AccessConfig: An access configuration attached to an instance's network
// interface. Only one access config per instance is supported.
type AccessConfig struct {
	// ExternalIpv6: Applies to ipv6AccessConfigs only. The first IPv6 address of
	// the external IPv6 range associated with this instance, prefix length is
	// stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static
	// external IP address, it must be unused and in the same region as the
	// instance's zone. If not specified, Google Cloud will automatically assign an
	// external IPv6 address from the instance's subnetwork.
	ExternalIpv6 string `json:"externalIpv6,omitempty"`
	// ExternalIpv6PrefixLength: Applies to ipv6AccessConfigs only. The prefix
	// length of the external IPv6 range.
	ExternalIpv6PrefixLength int64 `json:"externalIpv6PrefixLength,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#accessConfig for
	// access configs.
	Kind string `json:"kind,omitempty"`
	// Name: The name of this access configuration. In accessConfigs (IPv4), the
	// default and recommended name is External NAT, but you can use any arbitrary
	// string, such as My external IP or Network Access. In ipv6AccessConfigs, the
	// recommend name is External IPv6.
	Name string `json:"name,omitempty"`
	// NatIP: Applies to accessConfigs (IPv4) only. An external IP address
	// associated with this instance. Specify an unused static external IP address
	// available to the project or leave this field undefined to use an IP from a
	// shared ephemeral IP address pool. If you specify a static external IP
	// address, it must live in the same region as the zone of the instance.
	NatIP string `json:"natIP,omitempty"`
	// NetworkTier: This signifies the networking tier used for configuring this
	// access configuration and can only take the following values: PREMIUM,
	// STANDARD. If an AccessConfig is specified without a valid external IP
	// address, an ephemeral IP will be created with this networkTier. If an
	// AccessConfig with a valid external IP address is specified, it must match
	// that of the networkTier associated with the Address resource owning that IP.
	//
	// Possible values:
	//   "FIXED_STANDARD" - Public internet quality with fixed bandwidth.
	//   "PREMIUM" - High quality, Google-grade network tier, support for all
	// networking products.
	//   "SELECT" - Price competitive network tier, support for all networking
	// products.
	//   "STANDARD" - Public internet quality, only limited support for other
	// networking products.
	//   "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for
	// FIXED_STANDARD when fixed standard tier is expired or not configured.
	NetworkTier string `json:"networkTier,omitempty"`
	// PublicDnsName: [Output Only] The public DNS domain name for the instance.
	PublicDnsName string `json:"publicDnsName,omitempty"`
	// PublicPtrDomainName: The DNS domain name for the public PTR record. You can
	// set this field only if the `setPublicPtr` field is enabled in accessConfig.
	// If this field is unspecified in ipv6AccessConfig, a default PTR record will
	// be created for first IP in associated external IPv6 range.
	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
	// SecurityPolicy: [Output Only] The resource URL for the security policy
	// associated with this access config.
	SecurityPolicy string `json:"securityPolicy,omitempty"`
	// SetPublicDns: Specifies whether a public DNS 'A' record should be created
	// for the external IP address of this access configuration.
	SetPublicDns bool `json:"setPublicDns,omitempty"`
	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be created
	// to map the external IP address of the instance to a DNS domain name. This
	// field is not used in ipv6AccessConfig. A default PTR record will be created
	// if the VM has external IPv6 range associated.
	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
	// Type: The type of configuration. In accessConfigs (IPv4), the default and
	// only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only
	// option is DIRECT_IPV6.
	//
	// Possible values:
	//   "DIRECT_IPV6"
	//   "ONE_TO_ONE_NAT"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalIpv6") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIpv6") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AccessConfig) MarshalJSON() ([]byte, error) {
	type NoMethod AccessConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Address: Represents an IP Address resource. Google Compute Engine has two IP
// Address resources: * Global (external and internal)
// (https://cloud.google.com/compute/docs/reference/rest/alpha/globalAddresses)
// * Regional (external and internal)
// (https://cloud.google.com/compute/docs/reference/rest/alpha/addresses) For
// more information, see Reserving a static external IP address.
type Address struct {
	// Address: The static IP address represented by this resource.
	Address string `json:"address,omitempty"`
	// AddressType: The type of address to reserve, either INTERNAL or EXTERNAL. If
	// unspecified, defaults to EXTERNAL.
	//
	// Possible values:
	//   "DNS_FORWARDING" - DNS resolver address in the subnetwork.
	//   "EXTERNAL" - A publicly visible external IP address.
	//   "INTERNAL" - A private network IP address, for use with an Instance or
	// Internal Load Balancer forwarding rule.
	//   "UNSPECIFIED_TYPE"
	AddressType string `json:"addressType,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this field
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IpVersion: The IP version that will be used by this address. Valid options
	// are IPV4 or IPV6.
	//
	// Possible values:
	//   "IPV4"
	//   "IPV6"
	//   "UNSPECIFIED_VERSION"
	IpVersion string `json:"ipVersion,omitempty"`
	// Ipv6EndpointType: The endpoint type of this address, which should be VM or
	// NETLB. This is used for deciding which type of endpoint this address can be
	// used after the external IPv6 address reservation.
	//
	// Possible values:
	//   "NETLB" - Reserved IPv6 address can be used on network load balancer.
	//   "VM" - Reserved IPv6 address can be used on VM.
	Ipv6EndpointType string `json:"ipv6EndpointType,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#address for
	// addresses.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// Address, which is essentially a hash of the labels set used for optimistic
	// locking. The fingerprint is initially generated by Compute Engine and
	// changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve an Address.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a
	// lowercase letter, and all following characters (except for the last
	// character) must be a dash, lowercase letter, or digit. The last character
	// must be a lowercase letter or digit.
	Name string `json:"name,omitempty"`
	// Network: The URL of the network in which to reserve the address. This field
	// can only be used with INTERNAL type with the VPC_PEERING purpose.
	Network string `json:"network,omitempty"`
	// NetworkTier: This signifies the networking tier used for configuring this
	// address and can only take the following values: PREMIUM or STANDARD.
	// Internal IP addresses are always Premium Tier; global external IP addresses
	// are always Premium Tier; regional external IP addresses can be either
	// Standard or Premium Tier. If this field is not specified, it is assumed to
	// be PREMIUM.
	//
	// Possible values:
	//   "FIXED_STANDARD" - Public internet quality with fixed bandwidth.
	//   "PREMIUM" - High quality, Google-grade network tier, support for all
	// networking products.
	//   "SELECT" - Price competitive network tier, support for all networking
	// products.
	//   "STANDARD" - Public internet quality, only limited support for other
	// networking products.
	//   "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for
	// FIXED_STANDARD when fixed standard tier is expired or not configured.
	NetworkTier string `json:"networkTier,omitempty"`
	// PrefixLength: The prefix length if the resource represents an IP range.
	PrefixLength int64 `json:"prefixLength,omitempty"`
	// Purpose: The purpose of this resource, which can be one of the following
	// values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP
	// ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS
	// resolver address in a subnetwork for a Cloud DNS inbound forwarder IP
	// addresses (regional internal IP address in a subnet of a VPC network) -
	// VPC_PEERING for global internal IP addresses used for private services
	// access allocated ranges. - NAT_AUTO for the regional external IP addresses
	// used by Cloud NAT when allocating addresses using automatic NAT IP address
	// allocation. - IPSEC_INTERCONNECT for addresses created from a private IP
	// range that are reserved for a VLAN attachment in an *HA VPN over Cloud
	// Interconnect* configuration. These addresses are regional resources. -
	// `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to
	// multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a
	// private network address that is used to configure Private Service Connect.
	// Only global internal addresses can use this purpose.
	//
	// Possible values:
	//   "DNS_RESOLVER" - DNS resolver address in the subnetwork.
	//   "GCE_ENDPOINT" - VM internal/alias IP, Internal LB service IP, etc.
	//   "IPSEC_INTERCONNECT" - A regional internal IP address range reserved for
	// the VLAN attachment that is used in HA VPN over Cloud Interconnect. This
	// regional internal IP address range must not overlap with any IP address
	// range of subnet/route in the VPC network and its peering networks. After the
	// VLAN attachment is created with the reserved IP address range, when creating
	// a new VPN gateway, its interface IP address is allocated from the associated
	// VLAN attachment’s IP address range.
	//   "NAT_AUTO" - External IP automatically reserved for Cloud NAT.
	//   "PRIVATE_SERVICE_CONNECT" - A private network IP address that can be used
	// to configure Private Service Connect. This purpose can be specified only for
	// GLOBAL addresses of Type INTERNAL
	//   "SERVERLESS" - A regional internal IP address range reserved for
	// Serverless.
	//   "SHARED_LOADBALANCER_VIP" - A private network IP address that can be
	// shared by multiple Internal Load Balancer forwarding rules.
	//   "VPC_PEERING" - IP range for peer networks.
	Purpose string `json:"purpose,omitempty"`
	// Region: [Output Only] The URL of the region where a regional address
	// resides. For regional addresses, you must specify the region as a path
	// parameter in the HTTP request URL. *This field is not applicable to global
	// addresses.*
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: [Output Only] The status of the address, which can be one of
	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently in
	// the process of being reserved. A RESERVED address is currently reserved and
	// available to use. An IN_USE address is currently being used by another
	// resource and is not available.
	//
	// Possible values:
	//   "IN_USE" - Address is being used by another resource and is not available.
	//   "RESERVED" - Address is reserved and available to use.
	//   "RESERVING" - Address is being reserved.
	Status string `json:"status,omitempty"`
	// Subnetwork: The URL of the subnetwork in which to reserve the address. If an
	// IP address is specified, it must be within the subnetwork's IP range. This
	// field can only be used with INTERNAL type with a GCE_ENDPOINT or
	// DNS_RESOLVER purpose.
	Subnetwork string `json:"subnetwork,omitempty"`
	// Users: [Output Only] The URLs of the resources that are using this address.
	Users []string `json:"users,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Address) MarshalJSON() ([]byte, error) {
	type NoMethod Address
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AddressAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of AddressesScopedList resources.
	Items map[string]AddressesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#addressAggregatedList
	// for aggregated lists of addresses.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod AddressAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AddressAggregatedListWarning: [Output Only] Informational warning message.
type AddressAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AddressAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AddressAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AddressAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AddressList: Contains a list of addresses.
type AddressList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Address resources.
	Items []*Address `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#addressList for lists
	// of addresses.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *AddressListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressList) MarshalJSON() ([]byte, error) {
	type NoMethod AddressList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AddressListWarning: [Output Only] Informational warning message.
type AddressListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AddressListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AddressListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AddressListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AddressListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AddressesScopedList struct {
	// Addresses: [Output Only] A list of addresses contained in this scope.
	Addresses []*Address `json:"addresses,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// addresses when the list is empty.
	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Addresses") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Addresses") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod AddressesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AddressesScopedListWarning: [Output Only] Informational warning which
// replaces the list of addresses when the list is empty.
type AddressesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AddressesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AddressesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AddressesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AdvancedMachineFeatures: Specifies options for controlling advanced machine
// features. Options that would traditionally be configured in a BIOS belong
// here. Features that require operating system support may have corresponding
// entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in
// the Image supports nested virtualization being enabled or disabled).
type AdvancedMachineFeatures struct {
	// EnableNestedVirtualization: Whether to enable nested virtualization or not
	// (default is false).
	EnableNestedVirtualization bool `json:"enableNestedVirtualization,omitempty"`
	// EnableUefiNetworking: Whether to enable UEFI networking for instance
	// creation.
	EnableUefiNetworking bool `json:"enableUefiNetworking,omitempty"`
	// EnableWatchdogTimer: Whether to enable the watchdog timer.
	EnableWatchdogTimer bool `json:"enableWatchdogTimer,omitempty"`
	// NumaNodeCount: The number of vNUMA nodes.
	NumaNodeCount int64 `json:"numaNodeCount,omitempty"`
	// PerformanceMonitoringUnit: Type of Performance Monitoring Unit requested on
	// instance.
	//
	// Possible values:
	//   "ARCHITECTURAL" - Architecturally defined non-LLC events.
	//   "ENHANCED" - Most documented core/L2 and LLC events.
	//   "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED"
	//   "STANDARD" - Most documented core/L2 events.
	PerformanceMonitoringUnit string `json:"performanceMonitoringUnit,omitempty"`
	// ThreadsPerCore: The number of threads per physical core. To disable
	// simultaneous multithreading (SMT) set this to 1. If unset, the maximum
	// number of threads supported per core by the underlying processor is assumed.
	ThreadsPerCore int64 `json:"threadsPerCore,omitempty"`
	// TurboMode: Turbo frequency mode to use for the instance. Supported modes
	// include: * ALL_CORE_MAX Using empty string or not setting this field will
	// use the platform-specific default turbo mode.
	TurboMode string `json:"turboMode,omitempty"`
	// VisibleCoreCount: The number of physical cores to expose to an instance.
	// Multiply by the number of threads per core to compute the total number of
	// virtual CPUs to expose to the instance. If unset, the number of cores is
	// inferred from the instance's nominal CPU count and the underlying platform's
	// SMT width.
	VisibleCoreCount int64 `json:"visibleCoreCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableNestedVirtualization")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableNestedVirtualization") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AdvancedMachineFeatures) MarshalJSON() ([]byte, error) {
	type NoMethod AdvancedMachineFeatures
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AliasIpRange: An alias IP range attached to an instance's network interface.
type AliasIpRange struct {
	// IpCidrRange: The IP alias ranges to allocate for this interface. This IP
	// CIDR range must belong to the specified subnetwork and cannot contain IP
	// addresses reserved by system or used by other network interfaces. This range
	// may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a
	// CIDR-formatted string (such as 10.1.2.0/24).
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// SubnetworkRangeName: The name of a subnetwork secondary IP range from which
	// to allocate an IP alias range. If not specified, the primary range of the
	// subnetwork is used.
	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AliasIpRange) MarshalJSON() ([]byte, error) {
	type NoMethod AliasIpRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AllocationAggregateReservation: This reservation type is specified by total
// resource amounts (e.g. total count of CPUs) and can account for multiple
// instance SKUs. In other words, one can create instances of varying shapes
// against this reservation.
type AllocationAggregateReservation struct {
	// InUseResources: [Output only] List of resources currently in use.
	InUseResources []*AllocationAggregateReservationReservedResourceInfo `json:"inUseResources,omitempty"`
	// ReservedResources: List of reserved resources (CPUs, memory, accelerators).
	ReservedResources []*AllocationAggregateReservationReservedResourceInfo `json:"reservedResources,omitempty"`
	// VmFamily: The VM family that all instances scheduled against this
	// reservation must belong to.
	//
	// Possible values:
	//   "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L"
	//   "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P"
	VmFamily string `json:"vmFamily,omitempty"`
	// WorkloadType: The workload type of the instances that will target this
	// reservation.
	//
	// Possible values:
	//   "BATCH" - Reserved resources will be optimized for BATCH workloads, such
	// as ML training.
	//   "SERVING" - Reserved resources will be optimized for SERVING workloads,
	// such as ML inference.
	//   "UNSPECIFIED"
	WorkloadType string `json:"workloadType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InUseResources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InUseResources") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationAggregateReservation) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationAggregateReservation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AllocationAggregateReservationReservedResourceInfo struct {
	// Accelerator: Properties of accelerator resources in this reservation.
	Accelerator *AllocationAggregateReservationReservedResourceInfoAccelerator `json:"accelerator,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Accelerator") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Accelerator") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationAggregateReservationReservedResourceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationAggregateReservationReservedResourceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AllocationAggregateReservationReservedResourceInfoAccelerator struct {
	// AcceleratorCount: Number of accelerators of specified type.
	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
	// AcceleratorType: Full or partial URL to accelerator type. e.g.
	// "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l"
	AcceleratorType string `json:"acceleratorType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationAggregateReservationReservedResourceInfoAccelerator) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationAggregateReservationReservedResourceInfoAccelerator
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AllocationReservationSharingPolicy struct {
	// ServiceShareType: Sharing config for all Google Cloud services.
	//
	// Possible values:
	//   "ALLOW_ALL" - Allow all Google Cloud managed services to share
	// reservations.
	//   "DISALLOW_ALL" - [Default] Disallow sharing with all Google Cloud
	// services.
	//   "SERVICE_SHARE_TYPE_UNSPECIFIED"
	ServiceShareType string `json:"serviceShareType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ServiceShareType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ServiceShareType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationReservationSharingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationReservationSharingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AllocationResourceStatus: [Output Only] Contains output only fields.
type AllocationResourceStatus struct {
	// SpecificSkuAllocation: Allocation Properties of this reservation.
	SpecificSkuAllocation *AllocationResourceStatusSpecificSKUAllocation `json:"specificSkuAllocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SpecificSkuAllocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SpecificSkuAllocation") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AllocationResourceStatusSpecificSKUAllocation: Contains Properties set for
// the reservation.
type AllocationResourceStatusSpecificSKUAllocation struct {
	// SourceInstanceTemplateId: ID of the instance template used to populate
	// reservation properties.
	SourceInstanceTemplateId string `json:"sourceInstanceTemplateId,omitempty"`
	// Utilizations: Per service utilization breakdown. The Key is the Google Cloud
	// managed service name.
	Utilizations map[string]string `json:"utilizations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SourceInstanceTemplateId")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SourceInstanceTemplateId") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationResourceStatusSpecificSKUAllocation) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationResourceStatusSpecificSKUAllocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// Interface: Specifies the disk interface to use for attaching this disk,
	// which is either SCSI or NVME. The default is SCSI. For performance
	// characteristics of SCSI over NVMe, see Local SSD performance.
	//
	// Possible values:
	//   "NVDIMM"
	//   "NVME"
	//   "SCSI"
	Interface string `json:"interface,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties of the
// SKU instances being reserved. Next ID: 9
type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
	// GuestAccelerators: Specifies accelerator type and count.
	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
	// LocalSsds: Specifies amount of local ssd to reserve with each instance. The
	// type of disk is local-ssd.
	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
	// LocationHint: An opaque location hint used to place the allocation close to
	// other resources. This field is for use by internal tools that use the public
	// API.
	LocationHint string `json:"locationHint,omitempty"`
	// MachineType: Specifies type of machine (name only) which has fixed number of
	// vCPUs and fixed amount of memory. This also includes specifying custom
	// machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
	MachineType string `json:"machineType,omitempty"`
	// MaintenanceFreezeDurationHours: Specifies the number of hours after
	// reservation creation where instances using the reservation won't be
	// scheduled for maintenance.
	MaintenanceFreezeDurationHours int64 `json:"maintenanceFreezeDurationHours,omitempty"`
	// MaintenanceInterval: Specifies the frequency of planned maintenance events.
	// The accepted values are: `PERIODIC`.
	//
	// Possible values:
	//   "AS_NEEDED" - VMs are eligible to receive infrastructure and hypervisor
	// updates as they become available. This may result in more maintenance
	// operations (live migrations or terminations) for the VM than the PERIODIC
	// and RECURRENT options.
	//   "PERIODIC" - VMs receive infrastructure and hypervisor updates on a
	// periodic basis, minimizing the number of maintenance operations (live
	// migrations or terminations) on an individual VM. This may mean a VM will
	// take longer to receive an update than if it was configured for AS_NEEDED.
	// Security updates will still be applied as soon as they are available.
	//   "RECURRENT" - VMs receive infrastructure and hypervisor updates on a
	// periodic basis, minimizing the number of maintenance operations (live
	// migrations or terminations) on an individual VM. This may mean a VM will
	// take longer to receive an update than if it was configured for AS_NEEDED.
	// Security updates will still be applied as soon as they are available.
	// RECURRENT is used for GEN3 and Slice of Hardware VMs.
	MaintenanceInterval string `json:"maintenanceInterval,omitempty"`
	// MinCpuPlatform: Minimum cpu platform the reservation.
	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GuestAccelerators") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GuestAccelerators") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AllocationSpecificSKUReservation: This reservation type allows to pre
// allocate specific instance configuration.
type AllocationSpecificSKUReservation struct {
	// AssuredCount: [Output Only] Indicates how many instances are actually usable
	// currently.
	AssuredCount int64 `json:"assuredCount,omitempty,string"`
	// Count: Specifies the number of resources that are allocated.
	Count int64 `json:"count,omitempty,string"`
	// InUseCount: [Output Only] Indicates how many instances are in use.
	InUseCount int64 `json:"inUseCount,omitempty,string"`
	// InstanceProperties: The instance properties for the reservation.
	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
	// SourceInstanceTemplate: Specifies the instance template to create the
	// reservation. If you use this field, you must exclude the instanceProperties
	// field. This field is optional, and it can be a full or partial URL. For
	// example, the following are all valid URLs to an instance template: -
	// https://www.googleapis.com/compute/v1/projects/project
	// /global/instanceTemplates/instanceTemplate -
	// projects/project/global/instanceTemplates/instanceTemplate -
	// global/instanceTemplates/instanceTemplate
	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssuredCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssuredCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationSpecificSKUReservation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AttachedDisk: An instance-attached disk resource.
type AttachedDisk struct {
	// Architecture: [Output Only] The architecture of the attached disk. Valid
	// values are ARM64 or X86_64.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// AutoDelete: Specifies whether the disk will be auto-deleted when the
	// instance is deleted (but not when the disk is detached from the instance).
	AutoDelete bool `json:"autoDelete,omitempty"`
	// Boot: Indicates that this is a boot disk. The virtual machine will use the
	// first partition of the disk for its root filesystem.
	Boot bool `json:"boot,omitempty"`
	// DeviceName: Specifies a unique device name of your choice that is reflected
	// into the /dev/disk/by-id/google-* tree of a Linux operating system running
	// within the instance. This name can be used to reference the device for
	// mounting, resizing, and so on, from within the instance. If not specified,
	// the server chooses a default device name to apply to this disk, in the form
	// persistent-disk-x, where x is a number assigned by Google Compute Engine.
	// This field is only applicable for persistent disks.
	DeviceName string `json:"deviceName,omitempty"`
	// DiskEncryptionKey: Encrypts or decrypts a disk using a customer-supplied
	// encryption key. If you are creating a new disk, this field encrypts the new
	// disk using an encryption key that you provide. If you are attaching an
	// existing disk that is already encrypted, this field decrypts the disk using
	// the customer-supplied encryption key. If you encrypt a disk using a
	// customer-supplied key, you must provide the same key again when you attempt
	// to use this resource at a later time. For example, you must provide the key
	// when you create a snapshot or an image from the disk or when you attach the
	// disk to a virtual machine instance. If you do not provide an encryption key,
	// then the disk will be encrypted using an automatically generated key and you
	// do not need to provide a key to use the disk later. Note: Instance templates
	// do not store customer-supplied encryption keys, so you cannot use your own
	// keys to encrypt disks in a managed instance group. You cannot create VMs
	// that have disks with customer-supplied keys using the bulk insert method.
	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
	// DiskSizeGb: The size of the disk in GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// ForceAttach: [Input Only] Whether to force attach the regional disk even if
	// it's currently attached to another instance. If you try to force attach a
	// zonal disk to an instance, you will receive an error.
	ForceAttach bool `json:"forceAttach,omitempty"`
	// GuestOsFeatures: A list of features to enable on the guest operating system.
	// Applicable only for bootable images. Read Enabling guest operating system
	// features to see a list of available options.
	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
	// Index: [Output Only] A zero-based index to this disk, where 0 is reserved
	// for the boot disk. If you have many disks attached to an instance, each disk
	// would have a unique index number.
	Index int64 `json:"index,omitempty"`
	// InitializeParams: [Input Only] Specifies the parameters for a new disk that
	// will be created alongside the new instance. Use initialization parameters to
	// create boot disks or local SSDs attached to the new instance. This property
	// is mutually exclusive with the source property; you can only define one or
	// the other, but not both.
	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
	// Interface: Specifies the disk interface to use for attaching this disk,
	// which is either SCSI or NVME. For most machine types, the default is SCSI.
	// Local SSDs can use either NVME or SCSI. In certain configurations,
	// persistent disks can use NVMe. For more information, see About persistent
	// disks.
	//
	// Possible values:
	//   "NVDIMM"
	//   "NVME"
	//   "SCSI"
	Interface string `json:"interface,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk for
	// attached disks.
	Kind string `json:"kind,omitempty"`
	// Licenses: [Output Only] Any valid publicly visible licenses.
	Licenses []string `json:"licenses,omitempty"`
	// Locked: [Output Only] Whether to indicate the attached disk is locked. The
	// locked disk is not allowed to be detached from the instance, or to be used
	// as the source of the snapshot creation, and the image creation. The instance
	// with at least one locked attached disk is not allow to be used as source of
	// machine image creation, instant snapshot creation, and not allowed to be
	// deleted with --keep-disk parameter set to true for locked disks.
	Locked bool `json:"locked,omitempty"`
	// Mode: The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
	// If not specified, the default is to attach the disk in READ_WRITE mode.
	//
	// Possible values:
	//   "READ_ONLY" - Attaches this disk in read-only mode. Multiple virtual
	// machines can use a disk in read-only mode at a time.
	//   "READ_WRITE" - *[Default]* Attaches this disk in read-write mode. Only one
	// virtual machine at a time can be attached to a disk in read-write mode.
	Mode string `json:"mode,omitempty"`
	// SavedState: For LocalSSD disks on VM Instances in STOPPED or SUSPENDED
	// state, this field is set to PRESERVED if the LocalSSD data has been saved to
	// a persistent location by customer request. (see the discard_local_ssd option
	// on Stop/Suspend). Read-only in the api.
	//
	// Possible values:
	//   "DISK_SAVED_STATE_UNSPECIFIED" - *[Default]* Disk state has not been
	// preserved.
	//   "PRESERVED" - Disk state has been preserved.
	SavedState string `json:"savedState,omitempty"`
	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state stored
	// on disk
	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
	// Source: Specifies a valid partial or full URL to an existing Persistent Disk
	// resource. When creating a new instance boot disk, one of
	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
	// disks.source is required. If desired, you can also attach existing non-root
	// persistent disks using this property. This field is only applicable for
	// persistent disks. Note that for InstanceTemplate, specify the disk name for
	// zonal disk, and the URL for regional disk.
	Source string `json:"source,omitempty"`
	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT. If not
	// specified, the default is PERSISTENT.
	//
	// Possible values:
	//   "PERSISTENT"
	//   "SCRATCH"
	Type string `json:"type,omitempty"`
	// UserLicenses: [Output Only] A list of user provided licenses. It represents
	// a list of URLs to the license resource. Unlike regular licenses, user
	// provided licenses can be modified after the disk is created.
	UserLicenses []string `json:"userLicenses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Architecture") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Architecture") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AttachedDisk) MarshalJSON() ([]byte, error) {
	type NoMethod AttachedDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AttachedDiskInitializeParams: [Input Only] Specifies the parameters for a
// new disk that will be created alongside the new instance. Use initialization
// parameters to create boot disks or local SSDs attached to the new instance.
// This field is persisted and returned for instanceTemplate and not returned
// in the context of instance. This property is mutually exclusive with the
// source property; you can only define one or the other, but not both.
type AttachedDiskInitializeParams struct {
	// Architecture: The architecture of the attached disk. Valid values are arm64
	// or x86_64.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// Description: An optional description. Provide this property when creating
	// the disk.
	Description string `json:"description,omitempty"`
	// DiskName: Specifies the disk name. If not specified, the default is to use
	// the name of the instance. If a disk with the same name already exists in the
	// given region, the existing disk is attached to the new instance and the new
	// disk is not created.
	DiskName string `json:"diskName,omitempty"`
	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size must be at
	// least 10 GB. If you specify a sourceImage, which is required for boot disks,
	// the default size is the size of the sourceImage. If you do not specify a
	// sourceImage, the default disk size is 500 GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// DiskType: Specifies the disk type to use to create the instance. If not
	// specified, the default is pd-standard, specified using the full URL. For
	// example: https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /diskTypes/pd-standard For a full list of acceptable values, see Persistent
	// disk types. If you specify this field when creating a VM, you can provide
	// either the full or partial URL. For example, the following values are valid:
	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType -
	// zones/zone/diskTypes/diskType If you specify this field when creating or
	// updating an instance template or all-instances configuration, specify the
	// type of the disk, not the URL. For example: pd-standard.
	DiskType string `json:"diskType,omitempty"`
	// EnableConfidentialCompute: Whether this disk is using confidential compute
	// mode.
	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
	// GuestOsFeatures: A list of features to enable on the guest operating system.
	// Applicable only for bootable images. Read Enabling guest operating system
	// features to see a list of available options. Guest OS features are applied
	// by merging initializeParams.guestOsFeatures and disks.guestOsFeatures
	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
	// Interface: [Deprecated] Specifies the disk interface to use for attaching
	// this disk, which is either SCSI or NVME. The default is SCSI.
	//
	// Possible values:
	//   "NVME"
	//   "SCSI"
	//   "UNSPECIFIED"
	Interface string `json:"interface,omitempty"`
	// Labels: Labels to apply to this disk. These can be later modified by the
	// disks.setLabels method. This field is only applicable for persistent disks.
	Labels map[string]string `json:"labels,omitempty"`
	// LicenseCodes: Integer license codes indicating which licenses are attached
	// to this disk.
	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
	// Licenses: A list of publicly visible licenses. Reserved for Google's use.
	Licenses []string `json:"licenses,omitempty"`
	// MultiWriter: Indicates whether or not the disk can be read/write attached to
	// more than one instance.
	MultiWriter bool `json:"multiWriter,omitempty"`
	// OnUpdateAction: Specifies which action to take on instance update with this
	// disk. Default is to use the existing disk.
	//
	// Possible values:
	//   "RECREATE_DISK" - Always recreate the disk.
	//   "RECREATE_DISK_IF_SOURCE_CHANGED" - Recreate the disk if source (image,
	// snapshot) of this disk is different from source of existing disk.
	//   "USE_EXISTING_DISK" - Use the existing disk, this is the default
	// behaviour.
	OnUpdateAction string `json:"onUpdateAction,omitempty"`
	// ProvisionedIops: Indicates how many IOPS to provision for the disk. This
	// sets the number of I/O operations per second that the disk can handle.
	// Values must be between 10,000 and 120,000. For more details, see the Extreme
	// persistent disk documentation.
	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
	// ProvisionedThroughput: Indicates how much throughput to provision for the
	// disk. This sets the number of throughput mb per second that the disk can
	// handle. Values must greater than or equal to 1.
	ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"`
	// ReplicaZones: Required for each regional disk associated with the instance.
	// Specify the URLs of the zones where the disk should be replicated to. You
	// must provide exactly two replica zones, and one zone must be the same as the
	// instance zone.
	ReplicaZones []string `json:"replicaZones,omitempty"`
	// ResourceManagerTags: Resource manager tags to be bound to the disk. Tag keys
	// and values have the same definition as resource manager tags. Keys must be
	// in the format `tagKeys/{tag_key_id}`, and values are in the format
	// `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.
	ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"`
	// ResourcePolicies: Resource policies applied to this disk for automatic
	// snapshot creations. Specified using the full or partial URL. For instance
	// template, specify only the resource policy name.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// SourceImage: The source image to create this disk. When creating a new
	// instance boot disk, one of initializeParams.sourceImage or
	// initializeParams.sourceSnapshot or disks.source is required. To create a
	// disk with one of the public operating system images, specify the image by
	// its family name. For example, specify family/debian-9 to use the latest
	// Debian 9 image: projects/debian-cloud/global/images/family/debian-9
	// Alternatively, use a specific version of a public operating system image:
	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a
	// disk with a custom image that you created, specify the image name in the
	// following format: global/images/my-custom-image You can also specify a
	// custom image by its image family, which returns the latest version of the
	// image in that family. Replace the image name with family/family-name:
	// global/images/family/my-image-family If the source image is deleted later,
	// this field will not be set.
	SourceImage string `json:"sourceImage,omitempty"`
	// SourceImageEncryptionKey: The customer-supplied encryption key of the source
	// image. Required if the source image is protected by a customer-supplied
	// encryption key. InstanceTemplate and InstancePropertiesPatch do not store
	// customer-supplied encryption keys, so you cannot create disks for instances
	// in a managed instance group if the source images are encrypted with your own
	// keys.
	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
	// SourceInstantSnapshot: The source instant-snapshot to create this disk. When
	// creating a new instance boot disk, one of initializeParams.sourceSnapshot or
	// initializeParams.sourceInstantSnapshot initializeParams.sourceImage or
	// disks.source is required. To create a disk with a snapshot that you created,
	// specify the snapshot name in the following format:
	// us-central1-a/instantSnapshots/my-backup If the source instant-snapshot is
	// deleted later, this field will not be set.
	SourceInstantSnapshot string `json:"sourceInstantSnapshot,omitempty"`
	// SourceSnapshot: The source snapshot to create this disk. When creating a new
	// instance boot disk, one of initializeParams.sourceSnapshot or
	// initializeParams.sourceImage or disks.source is required. To create a disk
	// with a snapshot that you created, specify the snapshot name in the following
	// format: global/snapshots/my-backup If the source snapshot is deleted later,
	// this field will not be set.
	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of the
	// source snapshot.
	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
	// StoragePool: The storage pool in which the new disk is created. You can
	// provide this as a partial or full URL to the resource. For example, the
	// following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /storagePools/storagePool -
	// projects/project/zones/zone/storagePools/storagePool -
	// zones/zone/storagePools/storagePool
	StoragePool string `json:"storagePool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Architecture") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Architecture") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
	type NoMethod AttachedDiskInitializeParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AuditConfig: Specifies the audit configuration for a service. The
// configuration determines which permission types are logged, and what
// identities, if any, are exempted from logging. An AuditConfig must have one
// or more AuditLogConfigs. If there are AuditConfigs for both `allServices`
// and a specific service, the union of the two AuditConfigs is used for that
// service: the log_types specified in each AuditConfig are enabled, and the
// exempted_members in each AuditLogConfig are exempted. Example Policy with
// multiple AuditConfigs: { "audit_configs": [ { "service": "allServices",
// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [
// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type":
// "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com",
// "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type":
// "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For
// sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
// logging. It also exempts jose@example.com from DATA_READ logging, and
// aliya@example.com from DATA_WRITE logging.
type AuditConfig struct {
	// AuditLogConfigs: The configuration for logging of each type of permission.
	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
	// ExemptedMembers: This is deprecated and has no effect. Do not use.
	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
	// Service: Specifies a service that will be enabled for audit logging. For
	// example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices`
	// is a special value that covers all services.
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuditLogConfigs") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AuditConfig) MarshalJSON() ([]byte, error) {
	type NoMethod AuditConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AuditLogConfig: Provides the configuration for logging a type of
// permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ",
// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
// "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while
// exempting jose@example.com from DATA_READ logging.
type AuditLogConfig struct {
	// ExemptedMembers: Specifies the identities that do not cause logging for this
	// type of permission. Follows the same format of Binding.members.
	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
	// IgnoreChildExemptions: This is deprecated and has no effect. Do not use.
	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
	// LogType: The log type that this config enables.
	//
	// Possible values:
	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
	LogType string `json:"logType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExemptedMembers") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AuditLogConfig) MarshalJSON() ([]byte, error) {
	type NoMethod AuditLogConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AuthenticationPolicy: [Deprecated] The authentication settings for the
// backend service. The authentication settings for the backend service.
type AuthenticationPolicy struct {
	// Origins: List of authentication methods that can be used for origin
	// authentication. Similar to peers, these will be evaluated in order the first
	// valid one will be used to set origin identity. If none of these methods
	// pass, the request will be rejected with authentication failed error (401).
	// Leave the list empty if origin authentication is not required.
	Origins []*OriginAuthenticationMethod `json:"origins,omitempty"`
	// Peers: List of authentication methods that can be used for peer
	// authentication. They will be evaluated in order the first valid one will be
	// used to set peer identity. If none of these methods pass, the request will
	// be rejected with authentication failed error (401). Leave the list empty if
	// peer authentication is not required.
	Peers []*PeerAuthenticationMethod `json:"peers,omitempty"`
	// PrincipalBinding: Define whether peer or origin identity should be used for
	// principal. Default value is USE_PEER. If peer (or origin) identity is not
	// available, either because peer/origin authentication is not defined, or
	// failed, principal will be left unset. In other words, binding rule does not
	// affect the decision to accept or reject request. This field can be set to
	// one of the following: USE_PEER: Principal will be set to the identity from
	// peer authentication. USE_ORIGIN: Principal will be set to the identity from
	// origin authentication.
	//
	// Possible values:
	//   "INVALID"
	//   "USE_ORIGIN" - Principal will be set to the identity from origin
	// authentication.
	//   "USE_PEER" - Principal will be set to the identity from peer
	// authentication.
	PrincipalBinding string `json:"principalBinding,omitempty"`
	// ServerTlsContext: Configures the mechanism to obtain server-side security
	// certificates and identity information.
	ServerTlsContext *TlsContext `json:"serverTlsContext,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Origins") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Origins") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AuthenticationPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod AuthenticationPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AuthorizationConfig: [Deprecated] Authorization configuration provides
// service-level and method-level access control for a service. control for a
// service.
type AuthorizationConfig struct {
	// Policies: List of RbacPolicies.
	Policies []*RbacPolicy `json:"policies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Policies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Policies") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AuthorizationConfig) MarshalJSON() ([]byte, error) {
	type NoMethod AuthorizationConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Autoscaler: Represents an Autoscaler resource. Google Compute Engine has two
// Autoscaler resources: * Zonal
// (/compute/docs/reference/rest/alpha/autoscalers) * Regional
// (/compute/docs/reference/rest/alpha/regionAutoscalers) Use autoscalers to
// automatically add or delete instances from a managed instance group
// according to your defined autoscaling policy. For more information, read
// Autoscaling Groups of Instances. For zonal managed instance groups resource,
// use the autoscaler resource. For regional managed instance groups, use the
// regionAutoscalers resource.
type Autoscaler struct {
	// AutoscalingPolicy: The configuration parameters for the autoscaling
	// algorithm. You can define one or more signals for an autoscaler:
	// cpuUtilization, customMetricUtilizations, and loadBalancingUtilization. If
	// none of these are specified, the default will be to autoscale based on
	// cpuUtilization to 0.6 or 60%.
	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#autoscaler for
	// autoscalers.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// RecommendedSize: [Output Only] Target recommended MIG size (number of
	// instances) computed by autoscaler. Autoscaler calculates the recommended MIG
	// size even when the autoscaling policy mode is different from ON. This field
	// is empty when autoscaler is not connected to an existing managed instance
	// group or autoscaler did not generate its prediction.
	RecommendedSize int64 `json:"recommendedSize,omitempty"`
	// Region: [Output Only] URL of the region where the instance group resides
	// (for autoscalers living in regional scope).
	Region string `json:"region,omitempty"`
	// ScalingScheduleStatus: [Output Only] Status information of existing scaling
	// schedules.
	ScalingScheduleStatus map[string]ScalingScheduleStatus `json:"scalingScheduleStatus,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: [Output Only] The status of the autoscaler configuration. Current
	// set of possible values: - PENDING: Autoscaler backend hasn't read
	// new/updated configuration. - DELETING: Configuration is being deleted. -
	// ACTIVE: Configuration is acknowledged to be effective. Some warnings might
	// be present in the statusDetails field. - ERROR: Configuration has errors.
	// Actionable for users. Details are present in the statusDetails field. New
	// values might be added in the future.
	//
	// Possible values:
	//   "ACTIVE" - Configuration is acknowledged to be effective
	//   "DELETING" - Configuration is being deleted
	//   "ERROR" - Configuration has errors. Actionable for users.
	//   "PENDING" - Autoscaler backend hasn't read new/updated configuration
	Status string `json:"status,omitempty"`
	// StatusDetails: [Output Only] Human-readable details about the current state
	// of the autoscaler. Read the documentation for Commonly returned status
	// messages for examples of status messages you might encounter.
	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
	// Target: URL of the managed instance group that this autoscaler will scale.
	// This field is required when creating an autoscaler.
	Target string `json:"target,omitempty"`
	// Zone: [Output Only] URL of the zone where the instance group resides (for
	// autoscalers living in zonal scope).
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Autoscaler) MarshalJSON() ([]byte, error) {
	type NoMethod Autoscaler
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AutoscalerAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of AutoscalersScopedList resources.
	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources. end_interface:
	// MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalerAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalerAggregatedListWarning: [Output Only] Informational warning
// message.
type AutoscalerAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalerAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AutoscalerAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalerAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalerList: Contains a list of Autoscaler resources.
type AutoscalerList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Autoscaler resources.
	Items []*Autoscaler `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#autoscalerList for
	// lists of autoscalers.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *AutoscalerListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalerList) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalerList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalerListWarning: [Output Only] Informational warning message.
type AutoscalerListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AutoscalerListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalerListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalerListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AutoscalerListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalerListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AutoscalerStatusDetails struct {
	// Message: The status message.
	Message string `json:"message,omitempty"`
	// Type: The type of error, warning, or notice returned. Current set of
	// possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the
	// instance group are unhealthy (not in RUNNING state). -
	// BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached
	// to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler
	// recommends a size greater than maxNumReplicas. -
	// CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples
	// are not exported often enough to be a credible base for autoscaling. -
	// CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not
	// exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The
	// minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot
	// add or remove instances from the instance group. -
	// MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive
	// any data from the custom metric configured for autoscaling. -
	// MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured
	// to scale based on a load balancing signal but the instance group has not
	// received any requests from the load balancer. - MODE_OFF (WARNING):
	// Autoscaling is turned off. The number of instances in the group won't change
	// automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP
	// (WARNING): Autoscaling is in the "Autoscale only out" mode. The autoscaler
	// can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE
	// (ERROR): The instance group cannot be autoscaled because it has more than
	// one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR):
	// There is insufficient quota for the necessary resources, such as CPU or
	// number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for
	// regional autoscalers: there is a resource stockout in the chosen region. -
	// SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not
	// exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
	// Autoscaling does not work with an HTTP/S load balancer that has been
	// configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal
	// autoscalers: there is a resource stockout in the chosen zone. For regional
	// autoscalers: in at least one of the zones you're using there is a resource
	// stockout. New values might be added in the future. Some of the values might
	// not be available in all API versions.
	//
	// Possible values:
	//   "ALL_INSTANCES_UNHEALTHY" - All instances in the instance group are
	// unhealthy (not in RUNNING state).
	//   "BACKEND_SERVICE_DOES_NOT_EXIST" - There is no backend service attached to
	// the instance group.
	//   "CAPPED_AT_MAX_NUM_REPLICAS" - Autoscaler recommends a size greater than
	// maxNumReplicas.
	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE" - The custom metric samples are not
	// exported often enough to be a credible base for autoscaling.
	//   "CUSTOM_METRIC_INVALID" - The custom metric that was specified does not
	// exist or does not have the necessary labels.
	//   "MIN_EQUALS_MAX" - The minNumReplicas is equal to maxNumReplicas. This
	// means the autoscaler cannot add or remove instances from the instance group.
	//   "MISSING_CUSTOM_METRIC_DATA_POINTS" - The autoscaler did not receive any
	// data from the custom metric configured for autoscaling.
	//   "MISSING_LOAD_BALANCING_DATA_POINTS" - The autoscaler is configured to
	// scale based on a load balancing signal but the instance group has not
	// received any requests from the load balancer.
	//   "MODE_OFF" - Autoscaling is turned off. The number of instances in the
	// group won't change automatically. The autoscaling configuration is
	// preserved.
	//   "MODE_ONLY_SCALE_OUT" - Autoscaling is in the "Autoscale only scale out"
	// mode. Instances in the group will be only added.
	//   "MODE_ONLY_UP" - Autoscaling is in the "Autoscale only out" mode.
	// Instances in the group will be only added.
	//   "MORE_THAN_ONE_BACKEND_SERVICE" - The instance group cannot be autoscaled
	// because it has more than one backend service attached to it.
	//   "NOT_ENOUGH_QUOTA_AVAILABLE" - There is insufficient quota for the
	// necessary resources, such as CPU or number of instances.
	//   "REGION_RESOURCE_STOCKOUT" - Showed only for regional autoscalers: there
	// is a resource stockout in the chosen region.
	//   "SCALING_TARGET_DOES_NOT_EXIST" - The target to be scaled does not exist.
	//   "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX" - For some scaling
	// schedules minRequiredReplicas is greater than maxNumReplicas. Autoscaler
	// always recommends at most maxNumReplicas instances.
	//   "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN" - For some scaling
	// schedules minRequiredReplicas is less than minNumReplicas. Autoscaler always
	// recommends at least minNumReplicas instances.
	//   "UNKNOWN"
	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION" - Autoscaling does not
	// work with an HTTP/S load balancer that has been configured for maxRate.
	//   "ZONE_RESOURCE_STOCKOUT" - For zonal autoscalers: there is a resource
	// stockout in the chosen zone. For regional autoscalers: in at least one of
	// the zones you're using there is a resource stockout.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Message") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Message") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalerStatusDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AutoscalersScopedList struct {
	// Autoscalers: [Output Only] A list of autoscalers contained in this scope.
	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// autoscalers when the list is empty.
	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Autoscalers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalersScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalersScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalersScopedListWarning: [Output Only] Informational warning which
// replaces the list of autoscalers when the list is empty.
type AutoscalersScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalersScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AutoscalersScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalersScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalingPolicy: Cloud Autoscaler policy.
type AutoscalingPolicy struct {
	// CoolDownPeriodSec: The number of seconds that your application takes to
	// initialize on a VM instance. This is referred to as the initialization
	// period (/compute/docs/autoscaler#cool_down_period). Specifying an accurate
	// initialization period improves autoscaler decisions. For example, when
	// scaling out, the autoscaler ignores data from VMs that are still
	// initializing because those VMs might not yet represent normal usage of your
	// application. The default initialization period is 60 seconds. Initialization
	// periods might vary because of numerous factors. We recommend that you test
	// how long your application takes to initialize. To do this, create a VM and
	// time your application's startup process.
	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
	// CpuUtilization: Defines the CPU utilization policy that allows the
	// autoscaler to scale based on the average CPU utilization of a managed
	// instance group.
	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
	// CustomMetricUtilizations: Configuration parameters of autoscaling based on a
	// custom metric.
	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
	// LoadBalancingUtilization: Configuration parameters of autoscaling based on
	// load balancer.
	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
	// MaxNumReplicas: The maximum number of instances that the autoscaler can
	// scale out to. This is required when creating or updating an autoscaler. The
	// maximum number of replicas must not be lower than minimal number of
	// replicas.
	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
	// MinNumReplicas: The minimum number of replicas that the autoscaler can scale
	// in to. This cannot be less than 0. If not provided, autoscaler chooses a
	// default value depending on maximum number of instances allowed.
	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
	// Mode: Defines the operating mode for this policy. The following modes are
	// available: - OFF: Disables the autoscaler but maintains its configuration. -
	// ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON:
	// Enables all autoscaler activities according to its policy. For more
	// information, see "Turning off or restricting an autoscaler"
	//
	// Possible values:
	//   "OFF" - Do not automatically scale the MIG in or out. The recommended_size
	// field contains the size of MIG that would be set if the actuation mode was
	// enabled.
	//   "ON" - Automatically scale the MIG in and out according to the policy.
	//   "ONLY_SCALE_OUT" - Automatically create VMs according to the policy, but
	// do not scale the MIG in.
	//   "ONLY_UP" - Automatically create VMs according to the policy, but do not
	// scale the MIG in.
	Mode             string                             `json:"mode,omitempty"`
	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
	ScaleInControl   *AutoscalingPolicyScaleInControl   `json:"scaleInControl,omitempty"`
	// ScalingSchedules: Scaling schedules defined for an autoscaler. Multiple
	// schedules can be set on an autoscaler, and they can overlap. During
	// overlapping periods the greatest min_required_replicas of all scaling
	// schedules is applied. Up to 128 scaling schedules are allowed.
	ScalingSchedules map[string]AutoscalingPolicyScalingSchedule `json:"scalingSchedules,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalingPolicyCpuUtilization: CPU utilization policy.
type AutoscalingPolicyCpuUtilization struct {
	// PredictiveMethod: Indicates whether predictive autoscaling based on CPU
	// metric is enabled. Valid values are: * NONE (default). No predictive method
	// is used. The autoscaler scales the group to meet current demand based on
	// real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves
	// availability by monitoring daily and weekly load patterns and scaling out
	// ahead of anticipated demand.
	//
	// Possible values:
	//   "NONE" - No predictive method is used. The autoscaler scales the group to
	// meet current demand based on real-time metrics
	//   "OPTIMIZE_AVAILABILITY" - Predictive autoscaling improves availability by
	// monitoring daily and weekly load patterns and scaling out ahead of
	// anticipated demand.
	//   "PREDICTIVE_METHOD_UNSPECIFIED"
	//   "STANDARD" - Predictive autoscaling improves availability by monitoring
	// daily and weekly load patterns and scaling out ahead of anticipated demand.
	// This value is being DEPRECATED - it won't be promoted to beta and v1. Use
	// OPTIMIZE_AVAILABILITY instead.
	PredictiveMethod string `json:"predictiveMethod,omitempty"`
	// UtilizationTarget: The target CPU utilization that the autoscaler maintains.
	// Must be a float value in the range (0, 1]. If not specified, the default is
	// 0.6. If the CPU level is below the target utilization, the autoscaler scales
	// in the number of instances until it reaches the minimum number of instances
	// you specified or until the average CPU of your instances reaches the target
	// utilization. If the average CPU is above the target utilization, the
	// autoscaler scales out until it reaches the maximum number of instances you
	// specified or until the average utilization reaches the target utilization.
	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PredictiveMethod") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PredictiveMethod") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalingPolicyCpuUtilization
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
	type NoMethod AutoscalingPolicyCpuUtilization
	var s1 struct {
		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.UtilizationTarget = float64(s1.UtilizationTarget)
	return nil
}

// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric policy.
type AutoscalingPolicyCustomMetricUtilization struct {
	// Filter: A filter string, compatible with a Stackdriver Monitoring filter
	// string for TimeSeries.list API call. This filter is used to select a
	// specific TimeSeries for the purpose of autoscaling and to determine whether
	// the metric is exporting per-instance or per-group data. For the filter to be
	// valid for autoscaling purposes, the following rules apply: - You can only
	// use the AND operator for joining selectors. - You can only use direct
	// equality comparison operator (=) without any functions for each selector. -
	// You can specify the metric in both the filter string and in the metric
	// field. However, if specified in both places, the metric must be identical. -
	// The monitored resource type determines what kind of values are expected for
	// the metric. If it is a gce_instance, the autoscaler expects the metric to
	// include a separate TimeSeries for each instance in a group. In such a case,
	// you cannot filter on resource labels. If the resource type is any other
	// value, the autoscaler expects this metric to contain values that apply to
	// the entire autoscaled instance group and resource label filtering can be
	// performed to point autoscaler at the correct TimeSeries to scale upon. This
	// is called a *per-group metric* for the purpose of autoscaling. If not
	// specified, the type defaults to gce_instance. Try to provide a filter that
	// is selective enough to pick just one TimeSeries for the autoscaled group or
	// for each of the instances (if you are using gce_instance resource type). If
	// multiple TimeSeries are returned upon the query execution, the autoscaler
	// will sum their respective values to obtain its scaling value.
	Filter string `json:"filter,omitempty"`
	// Metric: The identifier (type) of the Stackdriver Monitoring metric. The
	// metric cannot have negative values. The metric must have a value type of
	// INT64 or DOUBLE.
	Metric string `json:"metric,omitempty"`
	// SingleInstanceAssignment: If scaling is based on a per-group metric value
	// that represents the total amount of work to be done or resource usage, set
	// this value to an amount assigned for a single instance of the scaled group.
	// Autoscaler keeps the number of instances proportional to the value of this
	// metric. The metric itself does not change value due to group resizing. A
	// good metric to use with the target is for example
	// pubsub.googleapis.com/subscription/num_undelivered_messages or a custom
	// metric exporting the total number of requests coming to your instances. A
	// bad example would be a metric exporting an average or median latency, since
	// this value can't include a chunk assignable to a single instance, it could
	// be better used with utilization_target instead.
	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
	// UtilizationTarget: The target value of the metric that autoscaler maintains.
	// This must be a positive value. A utilization metric scales number of virtual
	// machines handling requests to increase or decrease proportionally to the
	// metric. For example, a good metric to use as a utilization_target is
	// https://www.googleapis.com/compute/v1/instance/network/received_bytes_count.
	// The autoscaler works to keep this value constant for each of the instances.
	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
	// UtilizationTargetType: Defines how target utilization value is expressed for
	// a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or
	// DELTA_PER_MINUTE.
	//
	// Possible values:
	//   "DELTA_PER_MINUTE" - Sets the utilization target value for a cumulative or
	// delta metric, expressed as the rate of growth per minute.
	//   "DELTA_PER_SECOND" - Sets the utilization target value for a cumulative or
	// delta metric, expressed as the rate of growth per second.
	//   "GAUGE" - Sets the utilization target value for a gauge metric. The
	// autoscaler will collect the average utilization of the virtual machines from
	// the last couple of minutes, and compare the value to the utilization target
	// value to perform autoscaling.
	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Filter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalingPolicyCustomMetricUtilization
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
	type NoMethod AutoscalingPolicyCustomMetricUtilization
	var s1 struct {
		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
	s.UtilizationTarget = float64(s1.UtilizationTarget)
	return nil
}

// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters of
// autoscaling based on load balancing.
type AutoscalingPolicyLoadBalancingUtilization struct {
	// UtilizationTarget: Fraction of backend capacity utilization (set in HTTP(S)
	// load balancing configuration) that the autoscaler maintains. Must be a
	// positive float value. If not defined, the default is 0.8.
	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UtilizationTarget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UtilizationTarget") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalingPolicyLoadBalancingUtilization
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
	type NoMethod AutoscalingPolicyLoadBalancingUtilization
	var s1 struct {
		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.UtilizationTarget = float64(s1.UtilizationTarget)
	return nil
}

// AutoscalingPolicyScaleDownControl: Configuration that allows for slower
// scale in so that even if Autoscaler recommends an abrupt scale in of a MIG,
// it will be throttled as specified by the parameters below.
type AutoscalingPolicyScaleDownControl struct {
	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can be
	// deducted from the peak recommendation during the window autoscaler looks at
	// when computing recommendations. Possibly all these VMs can be deleted at
	// once so user service needs to be prepared to lose that many VMs in one step.
	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
	// TimeWindowSec: How far back autoscaling looks when computing recommendations
	// to include directives regarding slower scale in, as described above.
	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxScaledDownReplicas") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalingPolicyScaleDownControl
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalingPolicyScaleInControl: Configuration that allows for slower scale
// in so that even if Autoscaler recommends an abrupt scale in of a MIG, it
// will be throttled as specified by the parameters below.
type AutoscalingPolicyScaleInControl struct {
	// MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be
	// deducted from the peak recommendation during the window autoscaler looks at
	// when computing recommendations. Possibly all these VMs can be deleted at
	// once so user service needs to be prepared to lose that many VMs in one step.
	MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"`
	// TimeWindowSec: How far back autoscaling looks when computing recommendations
	// to include directives regarding slower scale in, as described above.
	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxScaledInReplicas") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalingPolicyScaleInControl
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AutoscalingPolicyScalingSchedule: Scaling based on user-defined schedule.
// The message describes a single scaling schedule. A scaling schedule changes
// the minimum number of VM instances an autoscaler can recommend, which can
// trigger scaling out.
type AutoscalingPolicyScalingSchedule struct {
	// Description: A description of a scaling schedule.
	Description string `json:"description,omitempty"`
	// Disabled: A boolean value that specifies whether a scaling schedule can
	// influence autoscaler recommendations. If set to true, then a scaling
	// schedule has no effect. This field is optional, and its value is false by
	// default.
	Disabled bool `json:"disabled,omitempty"`
	// DurationSec: The duration of time intervals, in seconds, for which this
	// scaling schedule is to run. The minimum allowed value is 300. This field is
	// required.
	DurationSec int64 `json:"durationSec,omitempty"`
	// MinRequiredReplicas: The minimum number of VM instances that the autoscaler
	// will recommend in time intervals starting according to schedule. This field
	// is required.
	MinRequiredReplicas int64 `json:"minRequiredReplicas,omitempty"`
	// Schedule: The start timestamps of time intervals when this scaling schedule
	// is to provide a scaling signal. This field uses the extended cron format
	// (with an optional year field). The expression can describe a single
	// timestamp if the optional year is set, in which case the scaling schedule
	// runs once. The schedule is interpreted with respect to time_zone. This field
	// is required. Note: These timestamps only describe when autoscaler starts
	// providing the scaling signal. The VMs need additional time to become
	// serving.
	Schedule string `json:"schedule,omitempty"`
	// TimeZone: The time zone to use when interpreting the schedule. The value of
	// this field must be a time zone name from the tz database:
	// https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default
	// value of "UTC" if left empty.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AutoscalingPolicyScalingSchedule) MarshalJSON() ([]byte, error) {
	type NoMethod AutoscalingPolicyScalingSchedule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Backend: Message containing information of one individual backend.
type Backend struct {
	// BalancingMode: Specifies how to determine whether the backend of a load
	// balancer can handle additional traffic or is fully loaded. For usage
	// guidelines, see Connection balancing mode. Backends must use compatible
	// balancing modes. For more information, see Supported balancing modes and
	// target capacity settings and Restrictions and guidance for instance groups.
	// Note: Currently, if you use the API to configure incompatible balancing
	// modes, the configuration might be accepted even though it has no impact and
	// is ignored. Specifically, Backend.maxUtilization is ignored when
	// Backend.balancingMode is RATE. In the future, this incompatible combination
	// will be rejected.
	//
	// Possible values:
	//   "CONNECTION" - Balance based on the number of simultaneous connections.
	//   "CUSTOM_METRICS" - Based on custom defined and reported metrics.
	//   "RATE" - Balance based on requests per second (RPS).
	//   "UTILIZATION" - Balance based on the backend utilization.
	BalancingMode string `json:"balancingMode,omitempty"`
	// CapacityScaler: A multiplier applied to the backend's target capacity of its
	// balancing mode. The default value is 1, which means the group serves up to
	// 100% of its configured capacity (depending on balancingMode). A setting of 0
	// means the group is completely drained, offering 0% of its available
	// capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a
	// setting larger than 0 and smaller than 0.1. You cannot configure a setting
	// of 0 when there is only one backend attached to the backend service. Not
	// available with backends that don't support using a balancingMode. This
	// includes backends such as global internet NEGs, regional serverless NEGs,
	// and PSC NEGs.
	CapacityScaler float64 `json:"capacityScaler,omitempty"`
	// CustomMetrics: List of custom metrics that are used for CUSTOM_METRICS
	// BalancingMode and WEIGHTED_ROUND_ROBIN BackendService locality_lb_policy.
	CustomMetrics []*BackendCustomMetric `json:"customMetrics,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Failover: This field designates whether this is a failover backend. More
	// than one failover backend can be configured for a given BackendService.
	Failover bool `json:"failover,omitempty"`
	// Group: The fully-qualified URL of an instance group or network endpoint
	// group (NEG) resource. To determine what types of backends a load balancer
	// supports, see the Backend services overview
	// (https://cloud.google.com/load-balancing/docs/backend-service#backends). You
	// must use the *fully-qualified* URL (starting with
	// https://www.googleapis.com/) to specify the instance group or NEG. Partial
	// URLs are not supported.
	Group string `json:"group,omitempty"`
	// MaxConnections: Defines a target maximum number of simultaneous connections.
	// For usage guidelines, see Connection balancing mode and Utilization
	// balancing mode. Not available if the backend's balancingMode is RATE.
	MaxConnections int64 `json:"maxConnections,omitempty"`
	// MaxConnectionsPerEndpoint: Defines a target maximum number of simultaneous
	// connections. For usage guidelines, see Connection balancing mode and
	// Utilization balancing mode. Not available if the backend's balancingMode is
	// RATE.
	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
	// MaxConnectionsPerInstance: Defines a target maximum number of simultaneous
	// connections. For usage guidelines, see Connection balancing mode and
	// Utilization balancing mode. Not available if the backend's balancingMode is
	// RATE.
	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
	// MaxRate: Defines a maximum number of HTTP requests per second (RPS). For
	// usage guidelines, see Rate balancing mode and Utilization balancing mode.
	// Not available if the backend's balancingMode is CONNECTION.
	MaxRate int64 `json:"maxRate,omitempty"`
	// MaxRatePerEndpoint: Defines a maximum target for requests per second (RPS).
	// For usage guidelines, see Rate balancing mode and Utilization balancing
	// mode. Not available if the backend's balancingMode is CONNECTION.
	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
	// MaxRatePerInstance: Defines a maximum target for requests per second (RPS).
	// For usage guidelines, see Rate balancing mode and Utilization balancing
	// mode. Not available if the backend's balancingMode is CONNECTION.
	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
	// MaxUtilization: Optional parameter to define a target capacity for the
	// UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage
	// guidelines, see Utilization balancing mode.
	MaxUtilization float64 `json:"maxUtilization,omitempty"`
	// Preference: This field indicates whether this backend should be fully
	// utilized before sending traffic to backends with default preference. The
	// possible values are: - PREFERRED: Backends with this preference level will
	// be filled up to their capacity limits first, based on RTT. - DEFAULT: If
	// preferred backends don't have enough capacity, backends in this layer would
	// be used and traffic would be assigned based on the load balancing algorithm
	// you use. This is the default
	//
	// Possible values:
	//   "DEFAULT" - No preference.
	//   "PREFERENCE_UNSPECIFIED" - If preference is unspecified, we set it to the
	// DEFAULT value
	//   "PREFERRED" - Traffic will be sent to this backend first.
	Preference string `json:"preference,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BalancingMode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Backend) MarshalJSON() ([]byte, error) {
	type NoMethod Backend
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *Backend) UnmarshalJSON(data []byte) error {
	type NoMethod Backend
	var s1 struct {
		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.CapacityScaler = float64(s1.CapacityScaler)
	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
	s.MaxUtilization = float64(s1.MaxUtilization)
	return nil
}

// BackendBucket: Represents a Cloud Storage Bucket resource. This Cloud
// Storage bucket resource is referenced by a URL map of a load balancer. For
// more information, read Backend Buckets.
type BackendBucket struct {
	// BucketName: Cloud Storage bucket name.
	BucketName string `json:"bucketName,omitempty"`
	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
	// CompressionMode: Compress text responses using Brotli or gzip compression,
	// based on the client's Accept-Encoding header.
	//
	// Possible values:
	//   "AUTOMATIC" - Automatically uses the best compression based on the
	// Accept-Encoding header sent by the client.
	//   "DISABLED" - Disables compression. Existing compressed responses cached by
	// Cloud CDN will not be served to clients.
	CompressionMode string `json:"compressionMode,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomResponseHeaders: Headers that the Application Load Balancer should add
	// to proxied responses.
	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
	// Description: An optional textual description of the resource; provided by
	// the client when the resource is created.
	Description string `json:"description,omitempty"`
	// EdgeSecurityPolicy: [Output Only] The resource URL for the edge security
	// policy associated with this backend bucket.
	EdgeSecurityPolicy string `json:"edgeSecurityPolicy,omitempty"`
	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
	EnableCdn bool `json:"enableCdn,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Type of the resource.
	Kind string `json:"kind,omitempty"`
	// LoadBalancingScheme: The value can only be INTERNAL_MANAGED for cross-region
	// internal layer 7 load balancer. If loadBalancingScheme is not specified, the
	// backend bucket can be used by classic global external load balancers, or
	// global application external load balancers, or both.
	//
	// Possible values:
	//   "INTERNAL_MANAGED" - Signifies that this will be used for internal
	// Application Load Balancers.
	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// UsedBy: [Output Only] List of resources referencing that backend bucket.
	UsedBy []*BackendBucketUsedBy `json:"usedBy,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "BucketName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BucketName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucket) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucket
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketCdnPolicy: Message containing Cloud CDN configuration for a
// backend bucket.
type BackendBucketCdnPolicy struct {
	// BypassCacheOnRequestHeaders: Bypass the cache when the specified request
	// headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers
	// can be specified. The cache is bypassed for all cdnPolicy.cacheMode
	// settings.
	BypassCacheOnRequestHeaders []*BackendBucketCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
	CacheKeyPolicy *BackendBucketCdnPolicyCacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
	// CacheMode: Specifies the cache setting for all responses from this backend.
	// The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid
	// caching headers to cache content. Responses without these headers will not
	// be cached at Google's edge, and will require a full trip to the origin on
	// every request, potentially impacting performance and increasing load on the
	// origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private",
	// "no-store" or "no-cache" directives in Cache-Control response headers.
	// Warning: this may result in Cloud CDN caching private, per-user (user
	// identifiable) content. CACHE_ALL_STATIC Automatically cache static content,
	// including common image formats, media (video and audio), and web assets
	// (JavaScript and CSS). Requests and responses that are marked as uncacheable,
	// as well as dynamic content (including HTML), will not be cached.
	//
	// Possible values:
	//   "CACHE_ALL_STATIC" - Automatically cache static content, including common
	// image formats, media (video and audio), and web assets (JavaScript and CSS).
	// Requests and responses that are marked as uncacheable, as well as dynamic
	// content (including HTML), will not be cached.
	//   "FORCE_CACHE_ALL" - Cache all content, ignoring any "private", "no-store"
	// or "no-cache" directives in Cache-Control response headers. Warning: this
	// may result in Cloud CDN caching private, per-user (user identifiable)
	// content.
	//   "INVALID_CACHE_MODE"
	//   "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching headers to
	// cache content. Responses without these headers will not be cached at
	// Google's edge, and will require a full trip to the origin on every request,
	// potentially impacting performance and increasing load on the origin server.
	CacheMode string `json:"cacheMode,omitempty"`
	// ClientTtl: Specifies a separate client (e.g. browser client) maximum TTL.
	// This is used to clamp the max-age (or Expires) value sent to the client.
	// With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for
	// the response max-age directive, along with a "public" directive. For
	// cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age
	// from the origin (if specified), or else sets the response max-age directive
	// to the lesser of the client_ttl and default_ttl, and also ensures a "public"
	// cache-control directive is present. If a client TTL is not specified, a
	// default value (1 hour) will be used. The maximum allowed value is
	// 31,622,400s (1 year).
	ClientTtl int64 `json:"clientTtl,omitempty"`
	// DefaultTtl: Specifies the default TTL for cached content served by this
	// origin for responses that do not have an existing valid TTL (max-age or
	// s-max-age). Setting a TTL of "0" means "always revalidate". The value of
	// defaultTTL cannot be set to a value greater than that of maxTTL, but can be
	// equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will
	// overwrite the TTL set in all responses. The maximum allowed value is
	// 31,622,400s (1 year), noting that infrequently accessed objects may be
	// evicted from the cache before the defined TTL.
	DefaultTtl int64 `json:"defaultTtl,omitempty"`
	// MaxTtl: Specifies the maximum allowed TTL for cached content served by this
	// origin. Cache directives that attempt to set a max-age or s-maxage higher
	// than this, or an Expires header more than maxTTL seconds in the future will
	// be capped at the value of maxTTL, as if it were the value of an s-maxage
	// Cache-Control directive. Headers sent to the client will not be modified.
	// Setting a TTL of "0" means "always revalidate". The maximum allowed value is
	// 31,622,400s (1 year), noting that infrequently accessed objects may be
	// evicted from the cache before the defined TTL.
	MaxTtl int64 `json:"maxTtl,omitempty"`
	// NegativeCaching: Negative caching allows per-status code TTLs to be set, in
	// order to apply fine-grained caching for common errors or redirects. This can
	// reduce the load on your origin and improve end-user experience by reducing
	// response latency. When the cache mode is set to CACHE_ALL_STATIC or
	// USE_ORIGIN_HEADERS, negative caching applies to responses with the specified
	// response code that lack any Cache-Control, Expires, or Pragma: no-cache
	// directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching
	// applies to all responses with the specified response code, and override any
	// caching headers. By default, Cloud CDN will apply the following default TTLs
	// to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent
	// Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal
	// Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501
	// (Not Implemented): 60s. These defaults can be overridden in
	// negative_caching_policy.
	NegativeCaching bool `json:"negativeCaching,omitempty"`
	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status code.
	// negative_caching must be enabled to configure negative_caching_policy.
	// Omitting the policy and leaving negative_caching enabled will use Cloud
	// CDN's default cache TTLs. Note that when specifying an explicit
	// negative_caching_policy, you should take care to specify a cache TTL for all
	// response codes that you wish to cache. Cloud CDN will not apply any default
	// negative caching when a policy exists.
	NegativeCachingPolicy []*BackendBucketCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
	// RequestCoalescing: If true then Cloud CDN will combine multiple concurrent
	// cache fill requests into a small number of requests to the origin.
	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
	// ServeWhileStale: Serve existing content from the cache (if available) when
	// revalidating content with the origin, or when an error is encountered when
	// refreshing the cache. This setting defines the default "max-stale" duration
	// for any cached responses that do not specify a max-stale directive. Stale
	// responses that exceed the TTL configured here will not be served. The
	// default limit (max-stale) is 86400s (1 day), which will allow stale content
	// to be served up to this limit beyond the max-age (or s-max-age) of a cached
	// response. The maximum allowed value is 604800 (1 week). Set this to zero (0)
	// to disable serve-while-stale.
	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a signed
	// URL request will be considered fresh. After this time period, the response
	// will be revalidated before being served. Defaults to 1hr (3600s). When
	// serving responses to signed URL requests, Cloud CDN will internally behave
	// as though all responses from this backend had a "Cache-Control: public,
	// max-age=[TTL]" header, regardless of any existing Cache-Control header. The
	// actual headers served in responses will not be altered.
	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
	// SignedUrlKeyNames: [Output Only] Names of the keys for signing request URLs.
	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BypassCacheOnRequestHeaders") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BypassCacheOnRequestHeaders") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketCdnPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketCdnPolicyBypassCacheOnRequestHeader: Bypass the cache when the
// specified request headers are present, e.g. Pragma or Authorization headers.
// Values are case insensitive. The presence of such a header overrides the
// cache_mode setting.
type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct {
	// HeaderName: The header field name to match on when bypassing cache. Values
	// are case-insensitive.
	HeaderName string `json:"headerName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HeaderName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HeaderName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketCdnPolicyBypassCacheOnRequestHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketCdnPolicyCacheKeyPolicy: Message containing what to include in
// the cache key for a request for Cloud CDN.
type BackendBucketCdnPolicyCacheKeyPolicy struct {
	// IncludeHttpHeaders: Allows HTTP request headers (by name) to be used in the
	// cache key.
	IncludeHttpHeaders []string `json:"includeHttpHeaders,omitempty"`
	// QueryStringWhitelist: Names of query string parameters to include in cache
	// keys. Default parameters are always included. '&' and '=' will be percent
	// encoded and not treated as delimiters.
	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeHttpHeaders") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeHttpHeaders") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketCdnPolicyCacheKeyPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketCdnPolicyCacheKeyPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for response
// error codes.
type BackendBucketCdnPolicyNegativeCachingPolicy struct {
	// Code: The HTTP status code to define a TTL against. Only HTTP status codes
	// 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be
	// specified as values, and you cannot specify a status code more than once.
	Code int64 `json:"code,omitempty"`
	// Ttl: The TTL (in seconds) for which to cache responses with the
	// corresponding status code. The maximum allowed value is 1800s (30 minutes),
	// noting that infrequently accessed objects may be evicted from the cache
	// before the defined TTL.
	Ttl int64 `json:"ttl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketCdnPolicyNegativeCachingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketList: Contains a list of BackendBucket resources.
type BackendBucketList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of BackendBucket resources.
	Items []*BackendBucket `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *BackendBucketListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketList) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketListWarning: [Output Only] Informational warning message.
type BackendBucketListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*BackendBucketListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendBucketListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendBucketListUsable struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of BackendBucket resources.
	Items []*BackendBucket `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#usableBackendBucketList
	// for lists of usable backend buckets.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *BackendBucketListUsableWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketListUsable) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketListUsable
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketListUsableWarning: [Output Only] Informational warning message.
type BackendBucketListUsableWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*BackendBucketListUsableWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketListUsableWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketListUsableWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendBucketListUsableWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketListUsableWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketListUsableWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendBucketUsedBy struct {
	// Reference: [Output Only] Server-defined URL for UrlMaps referencing that
	// BackendBucket.
	Reference string `json:"reference,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Reference") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Reference") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendBucketUsedBy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketUsedBy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendCustomMetric: Custom Metrics are used for CUSTOM_METRICS
// balancing_mode and WEIGHTED_ROUND_ROBIN BackendService locality_lb_policy.
type BackendCustomMetric struct {
	// DryRun: If true, the metric data is collected and reported to Cloud
	// Monitoring, but is not used for load balancing.
	DryRun bool `json:"dryRun,omitempty"`
	// MaxUtilization: Optional parameter to define a target utilization for the
	// Custom Metrics balancing mode. The valid range is [0.0, 1.0].
	MaxUtilization float64 `json:"maxUtilization,omitempty"`
	// Name: Name of a custom utilization signal. The name must be 1-24 characters
	// long, and comply with RFC1035. Specifically, the name must be 1-24
	// characters long and match the regular expression a-z ([-a-z0-9]*[a-z0-9])?
	// which means the first character must be a lowercase letter, and all
	// following characters must be a dash, lowercase letter, or digit, except the
	// last character, which cannot be a dash. For usage guidelines, see Custom
	// Metrics balancing mode. This field can only be used for a global or regional
	// backend service with the loadBalancingScheme set to EXTERNAL_MANAGED,
	// INTERNAL_MANAGED INTERNAL_SELF_MANAGED.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DryRun") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DryRun") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendCustomMetric) MarshalJSON() ([]byte, error) {
	type NoMethod BackendCustomMetric
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *BackendCustomMetric) UnmarshalJSON(data []byte) error {
	type NoMethod BackendCustomMetric
	var s1 struct {
		MaxUtilization gensupport.JSONFloat64 `json:"maxUtilization"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.MaxUtilization = float64(s1.MaxUtilization)
	return nil
}

// BackendService: Represents a Backend Service resource. A backend service
// defines how Google Cloud load balancers distribute traffic. The backend
// service configuration contains a set of values, such as the protocol used to
// connect to backends, various distribution and session settings, health
// checks, and timeouts. These settings provide fine-grained control over how
// your load balancer behaves. Most of the settings have default values that
// allow for easy configuration if you need to get started quickly. Backend
// services in Google Compute Engine can be either regionally or globally
// scoped. * Global
// (https://cloud.google.com/compute/docs/reference/rest/alpha/backendServices)
// * Regional
// (https://cloud.google.com/compute/docs/reference/rest/alpha/regionBackendServices)
// For more information, see Backend Services.
type BackendService struct {
	// AffinityCookieTtlSec: Lifetime of cookies in seconds. This setting is
	// applicable to Application Load Balancers and Traffic Director and requires
	// GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is
	// non-persistent and lasts only until the end of the browser session (or
	// equivalent). The maximum allowed value is two weeks (1,209,600). Not
	// supported when the backend service is referenced by a URL map that is bound
	// to target gRPC proxy that has validateForProxyless field set to true.
	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
	// Backends: The list of backends that serve this BackendService.
	Backends []*Backend `json:"backends,omitempty"`
	// CdnPolicy: Cloud CDN configuration for this BackendService. Only available
	// for specified load balancer types.
	CdnPolicy       *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
	CircuitBreakers *CircuitBreakers         `json:"circuitBreakers,omitempty"`
	// CompressionMode: Compress text responses using Brotli or gzip compression,
	// based on the client's Accept-Encoding header.
	//
	// Possible values:
	//   "AUTOMATIC" - Automatically uses the best compression based on the
	// Accept-Encoding header sent by the client.
	//   "DISABLED" - Disables compression. Existing compressed responses cached by
	// Cloud CDN will not be served to clients.
	CompressionMode    string              `json:"compressionMode,omitempty"`
	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
	// ConnectionTrackingPolicy: Connection Tracking configuration for this
	// BackendService. Connection tracking policy settings are only available for
	// external passthrough Network Load Balancers and internal passthrough Network
	// Load Balancers.
	ConnectionTrackingPolicy *BackendServiceConnectionTrackingPolicy `json:"connectionTrackingPolicy,omitempty"`
	// ConsistentHash: Consistent Hash-based load balancing can be used to provide
	// soft session affinity based on HTTP headers, cookies or other properties.
	// This load balancing policy is applicable only for HTTP connections. The
	// affinity to a particular destination host will be lost when one or more
	// hosts are added/removed from the destination service. This field specifies
	// parameters that control consistent hashing. This field is only applicable
	// when localityLbPolicy is set to MAGLEV or RING_HASH. This field is
	// applicable to either: - A regional backend service with the service_protocol
	// set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to
	// INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
	// set to INTERNAL_SELF_MANAGED.
	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomRequestHeaders: Headers that the load balancer adds to proxied
	// requests. See Creating custom headers
	// (https://cloud.google.com/load-balancing/docs/custom-headers).
	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
	// CustomResponseHeaders: Headers that the load balancer adds to proxied
	// responses. See Creating custom headers
	// (https://cloud.google.com/load-balancing/docs/custom-headers).
	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// EdgeSecurityPolicy: [Output Only] The resource URL for the edge security
	// policy associated with this backend service.
	EdgeSecurityPolicy string `json:"edgeSecurityPolicy,omitempty"`
	// EnableCDN: If true, enables Cloud CDN for the backend service of a global
	// external Application Load Balancer.
	EnableCDN bool `json:"enableCDN,omitempty"`
	// ExternalManagedMigrationState: Specifies the canary migration state.
	// Possible values are PREPARE, TEST_BY_PERCENTAGE, and TEST_ALL_TRAFFIC. To
	// begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be
	// changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before the
	// loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the
	// TEST_BY_PERCENTAGE state can be used to migrate traffic by percentage using
	// externalManagedMigrationTestingPercentage. Rolling back a migration requires
	// the states to be set in reverse order. So changing the scheme from
	// EXTERNAL_MANAGED to EXTERNAL requires the state to be set to
	// TEST_ALL_TRAFFIC at the same time. Optionally, the TEST_BY_PERCENTAGE state
	// can be used to migrate some traffic back to EXTERNAL or PREPARE can be used
	// to migrate all traffic back to EXTERNAL.
	//
	// Possible values:
	//   "PREPARE"
	//   "TEST_ALL_TRAFFIC"
	//   "TEST_BY_PERCENTAGE"
	ExternalManagedMigrationState string `json:"externalManagedMigrationState,omitempty"`
	// ExternalManagedMigrationTestingPercentage: Determines the fraction of
	// requests that should be processed by the Global external Application Load
	// Balancer. The value of this field must be in the range [0, 100]. Session
	// affinity options will slightly affect this routing behavior, for more
	// details, see: Session Affinity. This value can only be set if the
	// loadBalancingScheme in the BackendService is set to EXTERNAL (when using the
	// classic Application Load Balancer) and the migration state is
	// TEST_BY_PERCENTAGE.
	ExternalManagedMigrationTestingPercentage float64 `json:"externalManagedMigrationTestingPercentage,omitempty"`
	// FailoverPolicy: Requires at least one backend instance group to be defined
	// as a backup (failover) backend. For load balancers that have configurable
	// failover: Internal passthrough Network Load Balancers
	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
	// and external passthrough Network Load Balancers
	// (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).
	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a BackendService. An up-to-date fingerprint must be
	// provided in order to update the BackendService, otherwise the request will
	// fail with error 412 conditionNotMet. To see the latest fingerprint, make a
	// get() request to retrieve a BackendService.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HaPolicy: Configuring haPolicy is not supported.
	HaPolicy *BackendServiceHAPolicy `json:"haPolicy,omitempty"`
	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
	// (legacy), or httpsHealthChecks (legacy) resource for health checking this
	// backend service. Not all backend services support legacy health checks. See
	// Load balancer guide. Currently, at most one health check can be specified
	// for each backend service. Backend services with instance group or zonal NEG
	// backends must have a health check. Backend services with internet or
	// serverless NEG backends must not have a health check.
	HealthChecks []string `json:"healthChecks,omitempty"`
	// Iap: The configurations for Identity-Aware Proxy on this resource. Not
	// available for internal passthrough Network Load Balancers and external
	// passthrough Network Load Balancers.
	Iap *BackendServiceIAP `json:"iap,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IpAddressSelectionPolicy: Specifies a preference for traffic sent from the
	// proxy to the backend (or from the client to the backend for proxyless gRPC).
	// The possible values are: - IPV4_ONLY: Only send IPv4 traffic to the backends
	// of the backend service (Instance Group, Managed Instance Group, Network
	// Endpoint Group), regardless of traffic from the client to the proxy. Only
	// IPv4 health checks are used to check the health of the backends. This is the
	// default setting. - PREFER_IPV6: Prioritize the connection to the endpoint's
	// IPv6 address over its IPv4 address (provided there is a healthy IPv6
	// address). - IPV6_ONLY: Only send IPv6 traffic to the backends of the backend
	// service (Instance Group, Managed Instance Group, Network Endpoint Group),
	// regardless of traffic from the client to the proxy. Only IPv6 health checks
	// are used to check the health of the backends. This field is applicable to
	// either: - Advanced global external Application Load Balancer (load balancing
	// scheme EXTERNAL_MANAGED), - Regional external Application Load Balancer, -
	// Internal proxy Network Load Balancer (load balancing scheme
	// INTERNAL_MANAGED), - Regional internal Application Load Balancer (load
	// balancing scheme INTERNAL_MANAGED), - Traffic Director with Envoy proxies
	// and proxyless gRPC (load balancing scheme INTERNAL_SELF_MANAGED).
	//
	// Possible values:
	//   "IPV4_ONLY" - Only send IPv4 traffic to the backends of the Backend
	// Service (Instance Group, Managed Instance Group, Network Endpoint Group)
	// regardless of traffic from the client to the proxy. Only IPv4 health-checks
	// are used to check the health of the backends. This is the default setting.
	//   "IPV6_ONLY" - Only send IPv6 traffic to the backends of the Backend
	// Service (Instance Group, Managed Instance Group, Network Endpoint Group)
	// regardless of traffic from the client to the proxy. Only IPv6 health-checks
	// are used to check the health of the backends.
	//   "IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED" - Unspecified IP address
	// selection policy.
	//   "PREFER_IPV6" - Prioritize the connection to the endpoints IPv6 address
	// over its IPv4 address (provided there is a healthy IPv6 address).
	IpAddressSelectionPolicy string `json:"ipAddressSelectionPolicy,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#backendService for
	// backend services.
	Kind string `json:"kind,omitempty"`
	// LoadBalancingScheme: Specifies the load balancer type. A backend service
	// created for one type of load balancer cannot be used with another. For more
	// information, refer to Choosing a load balancer.
	//
	// Possible values:
	//   "EXTERNAL" - Signifies that this will be used for classic Application Load
	// Balancers, global external proxy Network Load Balancers, or external
	// passthrough Network Load Balancers.
	//   "EXTERNAL_MANAGED" - Signifies that this will be used for global external
	// Application Load Balancers, regional external Application Load Balancers, or
	// regional external proxy Network Load Balancers.
	//   "INTERNAL" - Signifies that this will be used for internal passthrough
	// Network Load Balancers.
	//   "INTERNAL_MANAGED" - Signifies that this will be used for internal
	// Application Load Balancers.
	//   "INTERNAL_SELF_MANAGED" - Signifies that this will be used by Traffic
	// Director.
	//   "INVALID_LOAD_BALANCING_SCHEME"
	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
	// LocalityLbPolicies: A list of locality load-balancing policies to be used in
	// order of preference. When you use localityLbPolicies, you must set at least
	// one value for either the localityLbPolicies[].policy or the
	// localityLbPolicies[].customPolicy field. localityLbPolicies overrides any
	// value set in the localityLbPolicy field. For an example of how to use this
	// field, see Define a list of preferred policies. Caution: This field and its
	// children are intended for use in a service mesh that includes gRPC clients
	// only. Envoy proxies can't use backend services that have this configuration.
	LocalityLbPolicies []*BackendServiceLocalityLoadBalancingPolicyConfig `json:"localityLbPolicies,omitempty"`
	// LocalityLbPolicy: The load balancing algorithm used within the scope of the
	// locality. The possible values are: - ROUND_ROBIN: This is a simple policy in
	// which each healthy backend is selected in round robin order. This is the
	// default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
	// hosts and picks the host which has fewer active requests. - RING_HASH: The
	// ring/modulo hash load balancer implements consistent hashing to backends.
	// The algorithm has the property that the addition/removal of a host from a
	// set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer
	// selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is
	// selected based on the client connection metadata, i.e., connections are
	// opened to the same address as the destination address of the incoming
	// connection before the connection was redirected to the load balancer. -
	// MAGLEV: used as a drop in replacement for the ring hash load balancer.
	// Maglev is not as stable as ring hash but has faster table lookup build times
	// and host selection times. For more information about Maglev, see
	// https://ai.google/research/pubs/pub44824 This field is applicable to either:
	// - A regional backend service with the service_protocol set to HTTP, HTTPS,
	// or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global
	// backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED,
	// INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not
	// configured—that is, if session affinity remains at the default value of
	// NONE—then the default value for localityLbPolicy is ROUND_ROBIN. If
	// session affinity is set to a value other than NONE, then the default value
	// for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH are supported
	// when the backend service is referenced by a URL map that is bound to target
	// gRPC proxy that has validateForProxyless field set to true.
	//
	// Possible values:
	//   "INVALID_LB_POLICY"
	//   "LEAST_REQUEST" - An O(1) algorithm which selects two random healthy hosts
	// and picks the host which has fewer active requests.
	//   "MAGLEV" - This algorithm implements consistent hashing to backends.
	// Maglev can be used as a drop in replacement for the ring hash load balancer.
	// Maglev is not as stable as ring hash but has faster table lookup build times
	// and host selection times. For more information about Maglev, see
	// https://ai.google/research/pubs/pub44824
	//   "ORIGINAL_DESTINATION" - Backend host is selected based on the client
	// connection metadata, i.e., connections are opened to the same address as the
	// destination address of the incoming connection before the connection was
	// redirected to the load balancer.
	//   "RANDOM" - The load balancer selects a random healthy host.
	//   "RING_HASH" - The ring/modulo hash load balancer implements consistent
	// hashing to backends. The algorithm has the property that the
	// addition/removal of a host from a set of N hosts only affects 1/N of the
	// requests.
	//   "ROUND_ROBIN" - This is a simple policy in which each healthy backend is
	// selected in round robin order. This is the default.
	//   "WEIGHTED_MAGLEV" - Per-instance weighted Load Balancing via health check
	// reported weights. If set, the Backend Service must configure a non legacy
	// HTTP-based Health Check, and health check replies are expected to contain
	// non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to
	// specify the per-instance weights. If set, Load Balancing is weighted based
	// on the per-instance weights reported in the last processed health check
	// replies, as long as every instance either reported a valid weight or had
	// UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This
	// option is only supported in Network Load Balancing.
	//   "WEIGHTED_ROUND_ROBIN" - Per-endpoint weighted round-robin Load Balancing
	// using weights computed from Backend reported Custom Metrics. If set, the
	// Backend Service responses are expected to contain non-standard HTTP response
	// header field X-Endpoint-Load-Metrics. The reported metrics to use for
	// computing the weights are specified via the backends[].customMetrics fields.
	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
	// LogConfig: This field denotes the logging options for the load balancer
	// traffic served by this backend service. If logging is enabled, logs will be
	// exported to Stackdriver.
	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
	// MaxStreamDuration: Specifies the default maximum duration (timeout) for
	// streams to this service. Duration is computed from the beginning of the
	// stream until the response has been completely processed, including all
	// retries. A stream that does not complete in this duration is closed. If not
	// specified, there will be no timeout limit, i.e. the maximum duration is
	// infinite. This value can be overridden in the PathMatcher configuration of
	// the UrlMap that references this backend service. This field is only allowed
	// when the loadBalancingScheme of the backend service is
	// INTERNAL_SELF_MANAGED.
	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
	// Metadatas: Deployment metadata associated with the resource to be set by a
	// GKE hub controller and read by the backend RCTH
	Metadatas map[string]string `json:"metadatas,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Network: The URL of the network to which this backend service belongs. This
	// field can only be specified when the load balancing scheme is set to
	// INTERNAL.
	Network string `json:"network,omitempty"`
	// NetworkPassThroughLbTrafficPolicy: Configures traffic steering properties of
	// internal passthrough Network Load Balancers.
	NetworkPassThroughLbTrafficPolicy *BackendServiceNetworkPassThroughLbTrafficPolicy `json:"networkPassThroughLbTrafficPolicy,omitempty"`
	// OutlierDetection: Settings controlling the ejection of unhealthy backend
	// endpoints from the load balancing pool of each individual proxy instance
	// that processes the traffic for the given backend service. If not set, this
	// feature is considered disabled. Results of the outlier detection algorithm
	// (ejection of endpoints from the load balancing pool and returning them back
	// to the pool) are executed independently by each proxy instance of the load
	// balancer. In most cases, more than one proxy instance handles the traffic
	// received by a backend service. Thus, it is possible that an unhealthy
	// endpoint is detected and ejected by only some of the proxies, and while this
	// happens, other proxies may continue to send requests to the same unhealthy
	// endpoint until they detect and eject the unhealthy endpoint. Applicable
	// backend endpoints can be: - VM instances in an Instance Group - Endpoints in
	// a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity
	// NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run,
	// App Engine, or Cloud Functions Services - Private Service Connect NEGs, that
	// resolve to Google-managed regional API endpoints or managed services
	// published using Private Service Connect Applicable backend service types can
	// be: - A global backend service with the loadBalancingScheme set to
	// INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with
	// the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme
	// set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless
	// NEGs. Not supported when the backend service is referenced by a URL map that
	// is bound to target gRPC proxy that has validateForProxyless field set to
	// true.
	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
	// Port: Deprecated in favor of portName. The TCP port to connect on the
	// backend. The default value is 80. For internal passthrough Network Load
	// Balancers and external passthrough Network Load Balancers, omit port.
	Port int64 `json:"port,omitempty"`
	// PortName: A named port on a backend instance group representing the port for
	// communication to the backend VMs in that group. The named port must be
	// defined on each backend instance group
	// (https://cloud.google.com/load-balancing/docs/backend-service#named_ports).
	// This parameter has no meaning if the backends are NEGs. For internal
	// passthrough Network Load Balancers and external passthrough Network Load
	// Balancers, omit port_name.
	PortName string `json:"portName,omitempty"`
	// Protocol: The protocol this BackendService uses to communicate with
	// backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC.
	// depending on the chosen load balancer or Traffic Director configuration.
	// Refer to the documentation for the load balancers or for Traffic Director
	// for more information. Must be set to GRPC when the backend service is
	// referenced by a URL map that is bound to target gRPC proxy.
	//
	// Possible values:
	//   "ALL" - ALL includes TCP, UDP, ICMP, ESP, AH and SCTP. Note that this
	// should never be used together with target_xx_proxies.
	//   "GRPC" - gRPC (available for Traffic Director).
	//   "HTTP"
	//   "HTTP2" - HTTP/2 with SSL.
	//   "HTTPS"
	//   "SSL" - TCP proxying with SSL.
	//   "TCP" - TCP proxying or TCP pass-through.
	//   "UDP" - UDP.
	//   "UNSPECIFIED" - If a Backend Service has UNSPECIFIED as its protocol, it
	// can be used with any L3/L4 Forwarding Rules.
	Protocol string `json:"protocol,omitempty"`
	// Region: [Output Only] URL of the region where the regional backend service
	// resides. This field is not applicable to global backend services. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Region string `json:"region,omitempty"`
	// SecurityPolicy: [Output Only] The resource URL for the security policy
	// associated with this backend service.
	SecurityPolicy string `json:"securityPolicy,omitempty"`
	// SecuritySettings: This field specifies the security settings that apply to
	// this backend service. This field is applicable to a global backend service
	// with the load_balancing_scheme set to INTERNAL_SELF_MANAGED.
	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ServiceBindings: URLs of networkservices.ServiceBinding resources. Can only
	// be set if load balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of
	// backends and health checks must be both empty.
	ServiceBindings []string `json:"serviceBindings,omitempty"`
	// ServiceLbPolicy: URL to networkservices.ServiceLbPolicy resource. Can only
	// be set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED,
	// INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global.
	ServiceLbPolicy string `json:"serviceLbPolicy,omitempty"`
	// SessionAffinity: Type of session affinity to use. The default is NONE. Only
	// NONE and HEADER_FIELD are supported when the backend service is referenced
	// by a URL map that is bound to target gRPC proxy that has
	// validateForProxyless field set to true. For more details, see: Session
	// Affinity
	// (https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).
	//
	// Possible values:
	//   "CLIENT_IP" - 2-tuple hash on packet's source and destination IP
	// addresses. Connections from the same source IP address to the same
	// destination IP address will be served by the same backend VM while that VM
	// remains healthy.
	//   "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source IP
	// address. Connections from the same source IP address will be served by the
	// same backend VM while that VM remains healthy. This option can only be used
	// for Internal TCP/UDP Load Balancing.
	//   "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and destination
	// IP addresses, IP protocol, and source and destination ports. Connections for
	// the same IP protocol from the same source IP address and port to the same
	// destination IP address and port will be served by the same backend VM while
	// that VM remains healthy. This option cannot be used for HTTP(S) load
	// balancing.
	//   "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination IP
	// addresses, and IP protocol. Connections for the same IP protocol from the
	// same source IP address to the same destination IP address will be served by
	// the same backend VM while that VM remains healthy. This option cannot be
	// used for HTTP(S) load balancing.
	//   "GENERATED_COOKIE" - Hash based on a cookie generated by the L7
	// loadbalancer. Only valid for HTTP(S) load balancing.
	//   "HEADER_FIELD" - The hash is based on a user specified header field.
	//   "HTTP_COOKIE" - The hash is based on a user provided cookie.
	//   "NONE" - No session affinity. Connections from the same client IP may go
	// to any instance in the pool.
	//   "STRONG_COOKIE_AFFINITY" - Strong cookie-based affinity. Connections
	// bearing the same cookie will be served by the same backend VM while that VM
	// remains healthy, as long as the cookie has not expired.
	SessionAffinity string `json:"sessionAffinity,omitempty"`
	// StrongSessionAffinityCookie: Describes the HTTP cookie used for stateful
	// session affinity. This field is applicable and required if the
	// sessionAffinity is set to STRONG_COOKIE_AFFINITY.
	StrongSessionAffinityCookie *BackendServiceHttpCookie `json:"strongSessionAffinityCookie,omitempty"`
	Subsetting                  *Subsetting               `json:"subsetting,omitempty"`
	// TimeoutSec: The backend service timeout has a different meaning depending on
	// the type of load balancer. For more information see, Backend service
	// settings. The default is 30 seconds. The full range of timeout values
	// allowed goes from 1 through 2,147,483,647 seconds. This value can be
	// overridden in the PathMatcher configuration of the UrlMap that references
	// this backend service. Not supported when the backend service is referenced
	// by a URL map that is bound to target gRPC proxy that has
	// validateForProxyless field set to true. Instead, use maxStreamDuration.
	TimeoutSec int64 `json:"timeoutSec,omitempty"`
	// TlsSettings: Configuration for Backend Authenticated TLS and mTLS. May only
	// be specified when the backend protocol is SSL, HTTPS or HTTP2.
	TlsSettings *BackendServiceTlsSettings `json:"tlsSettings,omitempty"`
	// UsedBy: [Output Only] List of resources referencing given backend service.
	UsedBy []*BackendServiceUsedBy `json:"usedBy,omitempty"`
	// VpcNetworkScope: The network scope of the backends that can be added to the
	// backend service. This field can be either GLOBAL_VPC_NETWORK or
	// REGIONAL_VPC_NETWORK. A backend service with the VPC scope set to
	// GLOBAL_VPC_NETWORK is only allowed to have backends in global VPC networks.
	// When the VPC scope is set to REGIONAL_VPC_NETWORK the backend service is
	// only allowed to have backends in regional networks in the same scope as the
	// backend service. Note: if not specified then GLOBAL_VPC_NETWORK will be
	// used.
	//
	// Possible values:
	//   "GLOBAL_VPC_NETWORK" - The backend service can only have backends in
	// global VPCs
	//   "REGIONAL_VPC_NETWORK" - The backend service can only have backends in
	// regional VPCs
	VpcNetworkScope string `json:"vpcNetworkScope,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AffinityCookieTtlSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendService) MarshalJSON() ([]byte, error) {
	type NoMethod BackendService
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *BackendService) UnmarshalJSON(data []byte) error {
	type NoMethod BackendService
	var s1 struct {
		ExternalManagedMigrationTestingPercentage gensupport.JSONFloat64 `json:"externalManagedMigrationTestingPercentage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ExternalManagedMigrationTestingPercentage = float64(s1.ExternalManagedMigrationTestingPercentage)
	return nil
}

// BackendServiceAggregatedList: Contains a list of BackendServicesScopedList.
type BackendServiceAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of BackendServicesScopedList resources.
	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceAggregatedListWarning: [Output Only] Informational warning
// message.
type BackendServiceAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceCdnPolicy: Message containing Cloud CDN configuration for a
// backend service.
type BackendServiceCdnPolicy struct {
	// BypassCacheOnRequestHeaders: Bypass the cache when the specified request
	// headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers
	// can be specified. The cache is bypassed for all cdnPolicy.cacheMode
	// settings.
	BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
	// CacheMode: Specifies the cache setting for all responses from this backend.
	// The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid
	// caching headers to cache content. Responses without these headers will not
	// be cached at Google's edge, and will require a full trip to the origin on
	// every request, potentially impacting performance and increasing load on the
	// origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private",
	// "no-store" or "no-cache" directives in Cache-Control response headers.
	// Warning: this may result in Cloud CDN caching private, per-user (user
	// identifiable) content. CACHE_ALL_STATIC Automatically cache static content,
	// including common image formats, media (video and audio), and web assets
	// (JavaScript and CSS). Requests and responses that are marked as uncacheable,
	// as well as dynamic content (including HTML), will not be cached.
	//
	// Possible values:
	//   "CACHE_ALL_STATIC" - Automatically cache static content, including common
	// image formats, media (video and audio), and web assets (JavaScript and CSS).
	// Requests and responses that are marked as uncacheable, as well as dynamic
	// content (including HTML), will not be cached.
	//   "FORCE_CACHE_ALL" - Cache all content, ignoring any "private", "no-store"
	// or "no-cache" directives in Cache-Control response headers. Warning: this
	// may result in Cloud CDN caching private, per-user (user identifiable)
	// content.
	//   "INVALID_CACHE_MODE"
	//   "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching headers to
	// cache content. Responses without these headers will not be cached at
	// Google's edge, and will require a full trip to the origin on every request,
	// potentially impacting performance and increasing load on the origin server.
	CacheMode string `json:"cacheMode,omitempty"`
	// ClientTtl: Specifies a separate client (e.g. browser client) maximum TTL.
	// This is used to clamp the max-age (or Expires) value sent to the client.
	// With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for
	// the response max-age directive, along with a "public" directive. For
	// cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age
	// from the origin (if specified), or else sets the response max-age directive
	// to the lesser of the client_ttl and default_ttl, and also ensures a "public"
	// cache-control directive is present. If a client TTL is not specified, a
	// default value (1 hour) will be used. The maximum allowed value is
	// 31,622,400s (1 year).
	ClientTtl int64 `json:"clientTtl,omitempty"`
	// DefaultTtl: Specifies the default TTL for cached content served by this
	// origin for responses that do not have an existing valid TTL (max-age or
	// s-max-age). Setting a TTL of "0" means "always revalidate". The value of
	// defaultTTL cannot be set to a value greater than that of maxTTL, but can be
	// equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will
	// overwrite the TTL set in all responses. The maximum allowed value is
	// 31,622,400s (1 year), noting that infrequently accessed objects may be
	// evicted from the cache before the defined TTL.
	DefaultTtl int64 `json:"defaultTtl,omitempty"`
	// MaxTtl: Specifies the maximum allowed TTL for cached content served by this
	// origin. Cache directives that attempt to set a max-age or s-maxage higher
	// than this, or an Expires header more than maxTTL seconds in the future will
	// be capped at the value of maxTTL, as if it were the value of an s-maxage
	// Cache-Control directive. Headers sent to the client will not be modified.
	// Setting a TTL of "0" means "always revalidate". The maximum allowed value is
	// 31,622,400s (1 year), noting that infrequently accessed objects may be
	// evicted from the cache before the defined TTL.
	MaxTtl int64 `json:"maxTtl,omitempty"`
	// NegativeCaching: Negative caching allows per-status code TTLs to be set, in
	// order to apply fine-grained caching for common errors or redirects. This can
	// reduce the load on your origin and improve end-user experience by reducing
	// response latency. When the cache mode is set to CACHE_ALL_STATIC or
	// USE_ORIGIN_HEADERS, negative caching applies to responses with the specified
	// response code that lack any Cache-Control, Expires, or Pragma: no-cache
	// directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching
	// applies to all responses with the specified response code, and override any
	// caching headers. By default, Cloud CDN will apply the following default TTLs
	// to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent
	// Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal
	// Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501
	// (Not Implemented): 60s. These defaults can be overridden in
	// negative_caching_policy.
	NegativeCaching bool `json:"negativeCaching,omitempty"`
	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status code.
	// negative_caching must be enabled to configure negative_caching_policy.
	// Omitting the policy and leaving negative_caching enabled will use Cloud
	// CDN's default cache TTLs. Note that when specifying an explicit
	// negative_caching_policy, you should take care to specify a cache TTL for all
	// response codes that you wish to cache. Cloud CDN will not apply any default
	// negative caching when a policy exists.
	NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
	// RequestCoalescing: If true then Cloud CDN will combine multiple concurrent
	// cache fill requests into a small number of requests to the origin.
	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
	// ServeWhileStale: Serve existing content from the cache (if available) when
	// revalidating content with the origin, or when an error is encountered when
	// refreshing the cache. This setting defines the default "max-stale" duration
	// for any cached responses that do not specify a max-stale directive. Stale
	// responses that exceed the TTL configured here will not be served. The
	// default limit (max-stale) is 86400s (1 day), which will allow stale content
	// to be served up to this limit beyond the max-age (or s-max-age) of a cached
	// response. The maximum allowed value is 604800 (1 week). Set this to zero (0)
	// to disable serve-while-stale.
	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a signed
	// URL request will be considered fresh. After this time period, the response
	// will be revalidated before being served. Defaults to 1hr (3600s). When
	// serving responses to signed URL requests, Cloud CDN will internally behave
	// as though all responses from this backend had a "Cache-Control: public,
	// max-age=[TTL]" header, regardless of any existing Cache-Control header. The
	// actual headers served in responses will not be altered.
	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
	// SignedUrlKeyNames: [Output Only] Names of the keys for signing request URLs.
	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BypassCacheOnRequestHeaders") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BypassCacheOnRequestHeaders") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceCdnPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache when the
// specified request headers are present, e.g. Pragma or Authorization headers.
// Values are case insensitive. The presence of such a header overrides the
// cache_mode setting.
type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct {
	// HeaderName: The header field name to match on when bypassing cache. Values
	// are case-insensitive.
	HeaderName string `json:"headerName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HeaderName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HeaderName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for response
// error codes.
type BackendServiceCdnPolicyNegativeCachingPolicy struct {
	// Code: The HTTP status code to define a TTL against. Only HTTP status codes
	// 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be
	// specified as values, and you cannot specify a status code more than once.
	Code int64 `json:"code,omitempty"`
	// Ttl: The TTL (in seconds) for which to cache responses with the
	// corresponding status code. The maximum allowed value is 1800s (30 minutes),
	// noting that infrequently accessed objects may be evicted from the cache
	// before the defined TTL.
	Ttl int64 `json:"ttl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceConnectionTrackingPolicy: Connection Tracking configuration
// for this BackendService.
type BackendServiceConnectionTrackingPolicy struct {
	// ConnectionPersistenceOnUnhealthyBackends: Specifies connection persistence
	// when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If
	// set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy
	// backends only for connection-oriented protocols (TCP and SCTP) and only if
	// the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session
	// Affinity is configured for 5-tuple. They do not persist for UDP. If set to
	// NEVER_PERSIST, after a backend becomes unhealthy, the existing connections
	// on the unhealthy backend are never persisted on the unhealthy backend. They
	// are always diverted to newly selected healthy backends (unless all backends
	// are unhealthy). If set to ALWAYS_PERSIST, existing connections always
	// persist on unhealthy backends regardless of protocol and session affinity.
	// It is generally not recommended to use this mode overriding the default. For
	// more details, see Connection Persistence for Network Load Balancing
	// (https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence)
	// and Connection Persistence for Internal TCP/UDP Load Balancing
	// (https://cloud.google.com/load-balancing/docs/internal#connection-persistence).
	//
	// Possible values:
	//   "ALWAYS_PERSIST"
	//   "DEFAULT_FOR_PROTOCOL"
	//   "NEVER_PERSIST"
	ConnectionPersistenceOnUnhealthyBackends string `json:"connectionPersistenceOnUnhealthyBackends,omitempty"`
	// EnableStrongAffinity: Enable Strong Session Affinity for external
	// passthrough Network Load Balancers. This option is not available publicly.
	EnableStrongAffinity bool `json:"enableStrongAffinity,omitempty"`
	// IdleTimeoutSec: Specifies how long to keep a Connection Tracking entry while
	// there is no matching traffic (in seconds). For internal passthrough Network
	// Load Balancers: - The minimum (default) is 10 minutes and the maximum is 16
	// hours. - It can be set only if Connection Tracking is less than 5-tuple
	// (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or
	// CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For external passthrough
	// Network Load Balancers the default is 60 seconds. This option is not
	// available publicly.
	IdleTimeoutSec int64 `json:"idleTimeoutSec,omitempty"`
	// TrackingMode: Specifies the key used for connection tracking. There are two
	// options: - PER_CONNECTION: This is the default mode. The Connection Tracking
	// is performed as per the Connection Key (default Hash Method) for the
	// specific protocol. - PER_SESSION: The Connection Tracking is performed as
	// per the configured Session Affinity. It matches the configured Session
	// Affinity. For more details, see Tracking Mode for Network Load Balancing
	// (https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode)
	// and Tracking Mode for Internal TCP/UDP Load Balancing
	// (https://cloud.google.com/load-balancing/docs/internal#tracking-mode).
	//
	// Possible values:
	//   "INVALID_TRACKING_MODE"
	//   "PER_CONNECTION"
	//   "PER_SESSION"
	TrackingMode string `json:"trackingMode,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ConnectionPersistenceOnUnhealthyBackends") to unconditionally include in
	// API requests. By default, fields with empty or default values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "ConnectionPersistenceOnUnhealthyBackends") to include in API requests with
	// the JSON null value. By default, fields with empty values are omitted from
	// API requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields
	// for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceConnectionTrackingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceConnectionTrackingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceFailoverPolicy: For load balancers that have configurable
// failover: Internal passthrough Network Load Balancers
// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
// and external passthrough Network Load Balancers
// (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).
// On failover or failback, this field indicates whether connection draining
// will be honored. Google Cloud has a fixed connection draining timeout of 10
// minutes. A setting of true terminates existing TCP connections to the active
// pool during failover and failback, immediately draining traffic. A setting
// of false allows existing TCP connections to persist, even on VMs no longer
// in the active pool, for up to the duration of the connection draining
// timeout (10 minutes).
type BackendServiceFailoverPolicy struct {
	// DisableConnectionDrainOnFailover: This can be set to true only if the
	// protocol is TCP. The default is false.
	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
	// DropTrafficIfUnhealthy: If set to true, connections to the load balancer are
	// dropped when all primary and all backup backend VMs are unhealthy.If set to
	// false, connections are distributed among all primary VMs when all primary
	// and all backup backend VMs are unhealthy. For load balancers that have
	// configurable failover: Internal passthrough Network Load Balancers
	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
	// and external passthrough Network Load Balancers
	// (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).
	// The default is false.
	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
	// FailoverRatio: The value of the field must be in the range [0, 1]. If the
	// value is 0, the load balancer performs a failover when the number of healthy
	// primary VMs equals zero. For all other values, the load balancer performs a
	// failover when the total number of healthy primary VMs is less than this
	// ratio. For load balancers that have configurable failover: Internal TCP/UDP
	// Load Balancing
	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
	// and external TCP/UDP Load Balancing
	// (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).
	FailoverRatio float64 `json:"failoverRatio,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DisableConnectionDrainOnFailover") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "DisableConnectionDrainOnFailover") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceFailoverPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
	type NoMethod BackendServiceFailoverPolicy
	var s1 struct {
		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.FailoverRatio = float64(s1.FailoverRatio)
	return nil
}

type BackendServiceGroupHealth struct {
	// Annotations: Metadata defined as annotations on the network endpoint group.
	Annotations map[string]string `json:"annotations,omitempty"`
	// HealthStatus: Health state of the backend instances or endpoints in
	// requested instance or network endpoint group, determined based on configured
	// health checks.
	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#backendServiceGroupHealth for the health of backend services.
	Kind string `json:"kind,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Annotations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Annotations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceGroupHealth
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceHAPolicy struct {
	// FastIPMove: Enabling fastIPMove is not supported.
	//
	// Possible values:
	//   "DISABLED"
	//   "GARP_RA"
	FastIPMove string `json:"fastIPMove,omitempty"`
	// Leader: Setting a leader is not supported.
	Leader *BackendServiceHAPolicyLeader `json:"leader,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FastIPMove") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FastIPMove") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceHAPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceHAPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceHAPolicyLeader struct {
	// BackendGroup: Setting backendGroup is not supported.
	BackendGroup string `json:"backendGroup,omitempty"`
	// NetworkEndpoint: Setting a network endpoint as leader is not supported.
	NetworkEndpoint *BackendServiceHAPolicyLeaderNetworkEndpoint `json:"networkEndpoint,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackendGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackendGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceHAPolicyLeader) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceHAPolicyLeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceHAPolicyLeaderNetworkEndpoint struct {
	// Instance: Specifying the instance name of a leader is not supported.
	Instance string `json:"instance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instance") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instance") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceHAPolicyLeaderNetworkEndpoint) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceHAPolicyLeaderNetworkEndpoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceHttpCookie: The HTTP cookie used for stateful session
// affinity.
type BackendServiceHttpCookie struct {
	// Name: Name of the cookie.
	Name string `json:"name,omitempty"`
	// Path: Path to set for the cookie.
	Path string `json:"path,omitempty"`
	// Ttl: Lifetime of the cookie.
	Ttl *Duration `json:"ttl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceHttpCookie) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceHttpCookie
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceIAP: Identity-Aware Proxy
type BackendServiceIAP struct {
	// Enabled: Whether the serving infrastructure will authenticate and authorize
	// all incoming requests.
	Enabled bool `json:"enabled,omitempty"`
	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
	// Oauth2ClientInfo: [Input Only] OAuth client info required to generate client
	// id to be used for IAP.
	Oauth2ClientInfo *BackendServiceIAPOAuth2ClientInfo `json:"oauth2ClientInfo,omitempty"`
	// Oauth2ClientSecret: OAuth2 client secret to use for the authentication flow.
	// For security reasons, this value cannot be retrieved via the API. Instead,
	// the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256
	// field. @InputOnly
	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the field
	// oauth2_client_secret above.
	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceIAP) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceIAP
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceIAPOAuth2ClientInfo struct {
	// ApplicationName: Application name to be used in OAuth consent screen.
	ApplicationName string `json:"applicationName,omitempty"`
	// ClientName: Name of the client to be generated. Optional - If not provided,
	// the name will be autogenerated by the backend.
	ClientName string `json:"clientName,omitempty"`
	// DeveloperEmailAddress: Developer's information to be used in OAuth consent
	// screen.
	DeveloperEmailAddress string `json:"developerEmailAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceIAPOAuth2ClientInfo) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceIAPOAuth2ClientInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceList: Contains a list of BackendService resources.
type BackendServiceList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of BackendService resources.
	Items []*BackendService `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#backendServiceList for
	// lists of backend services.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *BackendServiceListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceList) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceListWarning: [Output Only] Informational warning message.
type BackendServiceListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*BackendServiceListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceListUsable: Contains a list of usable BackendService
// resources.
type BackendServiceListUsable struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of BackendService resources.
	Items []*BackendService `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#usableBackendServiceList for lists of usable backend services.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *BackendServiceListUsableWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceListUsable) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceListUsable
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceListUsableWarning: [Output Only] Informational warning
// message.
type BackendServiceListUsableWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*BackendServiceListUsableWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceListUsableWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceListUsableWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceListUsableWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceListUsableWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceListUsableWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceLocalityLoadBalancingPolicyConfig: Container for either a
// built-in LB policy supported by gRPC or Envoy or a custom one implemented by
// the end user.
type BackendServiceLocalityLoadBalancingPolicyConfig struct {
	CustomPolicy *BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy `json:"customPolicy,omitempty"`
	Policy       *BackendServiceLocalityLoadBalancingPolicyConfigPolicy       `json:"policy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomPolicy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceLocalityLoadBalancingPolicyConfig) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceLocalityLoadBalancingPolicyConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy: The
// configuration for a custom policy implemented by the user and deployed with
// the client.
type BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy struct {
	// Data: An optional, arbitrary JSON object with configuration data, understood
	// by a locally installed custom policy implementation.
	Data string `json:"data,omitempty"`
	// Name: Identifies the custom policy. The value should match the name of a
	// custom implementation registered on the gRPC clients. It should follow
	// protocol buffer message naming conventions and include the full path (for
	// example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not
	// specify the same custom policy more than once for a backend. If you do, the
	// configuration is rejected. For an example of how to use this field, see Use
	// a custom policy.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Data") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Data") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceLocalityLoadBalancingPolicyConfigPolicy: The configuration for
// a built-in load balancing policy.
type BackendServiceLocalityLoadBalancingPolicyConfigPolicy struct {
	// Name: The name of a locality load-balancing policy. Valid values include
	// ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about
	// these values, see the description of localityLbPolicy. Do not specify the
	// same policy more than once for a backend. If you do, the configuration is
	// rejected.
	//
	// Possible values:
	//   "INVALID_LB_POLICY"
	//   "LEAST_REQUEST" - An O(1) algorithm which selects two random healthy hosts
	// and picks the host which has fewer active requests.
	//   "MAGLEV" - This algorithm implements consistent hashing to backends.
	// Maglev can be used as a drop in replacement for the ring hash load balancer.
	// Maglev is not as stable as ring hash but has faster table lookup build times
	// and host selection times. For more information about Maglev, see
	// https://ai.google/research/pubs/pub44824
	//   "ORIGINAL_DESTINATION" - Backend host is selected based on the client
	// connection metadata, i.e., connections are opened to the same address as the
	// destination address of the incoming connection before the connection was
	// redirected to the load balancer.
	//   "RANDOM" - The load balancer selects a random healthy host.
	//   "RING_HASH" - The ring/modulo hash load balancer implements consistent
	// hashing to backends. The algorithm has the property that the
	// addition/removal of a host from a set of N hosts only affects 1/N of the
	// requests.
	//   "ROUND_ROBIN" - This is a simple policy in which each healthy backend is
	// selected in round robin order. This is the default.
	//   "WEIGHTED_MAGLEV" - Per-instance weighted Load Balancing via health check
	// reported weights. If set, the Backend Service must configure a non legacy
	// HTTP-based Health Check, and health check replies are expected to contain
	// non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to
	// specify the per-instance weights. If set, Load Balancing is weighted based
	// on the per-instance weights reported in the last processed health check
	// replies, as long as every instance either reported a valid weight or had
	// UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This
	// option is only supported in Network Load Balancing.
	//   "WEIGHTED_ROUND_ROBIN" - Per-endpoint weighted round-robin Load Balancing
	// using weights computed from Backend reported Custom Metrics. If set, the
	// Backend Service responses are expected to contain non-standard HTTP response
	// header field X-Endpoint-Load-Metrics. The reported metrics to use for
	// computing the weights are specified via the backends[].customMetrics fields.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceLocalityLoadBalancingPolicyConfigPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceLocalityLoadBalancingPolicyConfigPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceLogConfig: The available logging options for the load balancer
// traffic served by this backend service.
type BackendServiceLogConfig struct {
	// Enable: Denotes whether to enable logging for the load balancer traffic
	// served by this backend service. The default value is false.
	Enable bool `json:"enable,omitempty"`
	// Optional: Deprecated in favor of optionalMode. This field can only be
	// specified if logging is enabled for this backend service. Configures whether
	// all, none or a subset of optional fields should be added to the reported
	// logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default
	// is EXCLUDE_ALL_OPTIONAL.
	//
	// Possible values:
	//   "CUSTOM" - A subset of optional fields.
	//   "EXCLUDE_ALL_OPTIONAL" - None optional fields.
	//   "INCLUDE_ALL_OPTIONAL" - All optional fields.
	//   "UNSPECIFIED_OPTIONAL_MODE"
	Optional string `json:"optional,omitempty"`
	// OptionalFields: This field can only be specified if logging is enabled for
	// this backend service and "logConfig.optionalMode" was set to CUSTOM.
	// Contains a list of optional fields you want to include in the logs. For
	// example: serverInstance, serverGkeDetails.cluster,
	// serverGkeDetails.pod.podNamespace
	OptionalFields []string `json:"optionalFields,omitempty"`
	// OptionalMode: This field can only be specified if logging is enabled for
	// this backend service. Configures whether all, none or a subset of optional
	// fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL,
	// EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.
	//
	// Possible values:
	//   "CUSTOM" - A subset of optional fields.
	//   "EXCLUDE_ALL_OPTIONAL" - None optional fields.
	//   "INCLUDE_ALL_OPTIONAL" - All optional fields.
	//   "UNSPECIFIED_OPTIONAL_MODE"
	OptionalMode string `json:"optionalMode,omitempty"`
	// SampleRate: This field can only be specified if logging is enabled for this
	// backend service. The value of the field must be in [0, 1]. This configures
	// the sampling rate of requests to the load balancer where 1.0 means all
	// logged requests are reported and 0.0 means no logged requests are reported.
	// The default value is 1.0.
	SampleRate float64 `json:"sampleRate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceLogConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
	type NoMethod BackendServiceLogConfig
	var s1 struct {
		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.SampleRate = float64(s1.SampleRate)
	return nil
}

type BackendServiceNetworkPassThroughLbTrafficPolicy struct {
	// ZonalAffinity: When configured, new connections are load balanced across
	// healthy backend endpoints in the local zone.
	ZonalAffinity *BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity `json:"zonalAffinity,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ZonalAffinity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ZonalAffinity") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceNetworkPassThroughLbTrafficPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceNetworkPassThroughLbTrafficPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity struct {
	// Spillover: This field indicates whether zonal affinity is enabled or not.
	// The possible values are: - ZONAL_AFFINITY_DISABLED: Default Value. Zonal
	// Affinity is disabled. The load balancer distributes new connections to all
	// healthy backend endpoints across all zones. -
	// ZONAL_AFFINITY_STAY_WITHIN_ZONE: Zonal Affinity is enabled. The load
	// balancer distributes new connections to all healthy backend endpoints in the
	// local zone only. If there are no healthy backend endpoints in the local
	// zone, the load balancer distributes new connections to all backend endpoints
	// in the local zone. - ZONAL_AFFINITY_SPILL_CROSS_ZONE: Zonal Affinity is
	// enabled. The load balancer distributes new connections to all healthy
	// backend endpoints in the local zone only. If there aren't enough healthy
	// backend endpoints in the local zone, the load balancer distributes new
	// connections to all healthy backend endpoints across all zones.
	//
	// Possible values:
	//   "ZONAL_AFFINITY_DISABLED"
	//   "ZONAL_AFFINITY_SPILL_CROSS_ZONE"
	//   "ZONAL_AFFINITY_STAY_WITHIN_ZONE"
	Spillover string `json:"spillover,omitempty"`
	// SpilloverRatio: The value of the field must be in [0, 1]. When the ratio of
	// the count of healthy backend endpoints in a zone to the count of backend
	// endpoints in that same zone is equal to or above this threshold, the load
	// balancer distributes new connections to all healthy endpoints in the local
	// zone only. When the ratio of the count of healthy backend endpoints in a
	// zone to the count of backend endpoints in that same zone is below this
	// threshold, the load balancer distributes all new connections to all healthy
	// endpoints across all zones.
	SpilloverRatio float64 `json:"spilloverRatio,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Spillover") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Spillover") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity) UnmarshalJSON(data []byte) error {
	type NoMethod BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
	var s1 struct {
		SpilloverRatio gensupport.JSONFloat64 `json:"spilloverRatio"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.SpilloverRatio = float64(s1.SpilloverRatio)
	return nil
}

type BackendServiceReference struct {
	BackendService string `json:"backendService,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackendService") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackendService") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceReference) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceTlsSettings struct {
	// AuthenticationConfig: Reference to the BackendAuthenticationConfig resource
	// from the networksecurity.googleapis.com namespace. Can be used in
	// authenticating TLS connections to the backend, as specified by the
	// authenticationMode field. Can only be specified if authenticationMode is not
	// NONE.
	AuthenticationConfig string `json:"authenticationConfig,omitempty"`
	// Sni: Server Name Indication - see RFC3546 section 3.1. If set, the load
	// balancer sends this string as the SNI hostname in the TLS connection to the
	// backend, and requires that this string match a Subject Alternative Name
	// (SAN) in the backend's server certificate. With a Regional Internet NEG
	// backend, if the SNI is specified here, the load balancer uses it regardless
	// of whether the Regional Internet NEG is specified with FQDN or IP address
	// and port. When both sni and subjectAltNames[] are specified, the load
	// balancer matches the backend certificate's SAN only to subjectAltNames[].
	Sni string `json:"sni,omitempty"`
	// SubjectAltNames: A list of Subject Alternative Names (SANs) that the Load
	// Balancer verifies during a TLS handshake with the backend. When the server
	// presents its X.509 certificate to the Load Balancer, the Load Balancer
	// inspects the certificate's SAN field, and requires that at least one SAN
	// match one of the subjectAltNames in the list. This field is limited to 5
	// entries. When both sni and subjectAltNames[] are specified, the load
	// balancer matches the backend certificate's SAN only to subjectAltNames[].
	SubjectAltNames []*BackendServiceTlsSettingsSubjectAltName `json:"subjectAltNames,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AuthenticationConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuthenticationConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceTlsSettings) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceTlsSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServiceTlsSettingsSubjectAltName: A Subject Alternative Name that the
// load balancer matches against the SAN field in the TLS certificate provided
// by the backend, specified as either a DNS name or a URI, in accordance with
// RFC 5280 4.2.1.6
type BackendServiceTlsSettingsSubjectAltName struct {
	// DnsName: The SAN specified as a DNS Name.
	DnsName string `json:"dnsName,omitempty"`
	// UniformResourceIdentifier: The SAN specified as a URI.
	UniformResourceIdentifier string `json:"uniformResourceIdentifier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DnsName") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DnsName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceTlsSettingsSubjectAltName) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceTlsSettingsSubjectAltName
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServiceUsedBy struct {
	// Reference: [Output Only] Server-defined URL for resources referencing given
	// BackendService like UrlMaps, TargetTcpProxies, TargetSslProxies and
	// ForwardingRule.
	Reference string `json:"reference,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Reference") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Reference") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServiceUsedBy) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceUsedBy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServicesScopedList struct {
	// BackendServices: A list of BackendServices contained in this scope.
	BackendServices []*BackendService `json:"backendServices,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackendServices") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackendServices") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServicesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServicesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendServicesScopedListWarning: Informational warning which replaces the
// list of backend services when the list is empty.
type BackendServicesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServicesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendServicesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServicesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BfdPacket struct {
	// AuthenticationPresent: The Authentication Present bit of the BFD packet.
	// This is specified in section 4.1 of RFC5880
	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
	// packet. This is specified in section 4.1 of RFC5880
	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
	// Demand: The demand bit of the BFD packet. This is specified in section 4.1
	// of RFC5880
	Demand bool `json:"demand,omitempty"`
	// Diagnostic: The diagnostic code specifies the local system's reason for the
	// last change in session state. This allows remote systems to determine the
	// reason that the previous session failed, for example. These diagnostic codes
	// are specified in section 4.1 of RFC5880
	//
	// Possible values:
	//   "ADMINISTRATIVELY_DOWN"
	//   "CONCATENATED_PATH_DOWN"
	//   "CONTROL_DETECTION_TIME_EXPIRED"
	//   "DIAGNOSTIC_UNSPECIFIED"
	//   "ECHO_FUNCTION_FAILED"
	//   "FORWARDING_PLANE_RESET"
	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
	//   "NO_DIAGNOSTIC"
	//   "PATH_DOWN"
	//   "REVERSE_CONCATENATED_PATH_DOWN"
	Diagnostic string `json:"diagnostic,omitempty"`
	// Final: The Final bit of the BFD packet. This is specified in section 4.1 of
	// RFC5880
	Final bool `json:"final,omitempty"`
	// Length: The length of the BFD Control packet in bytes. This is specified in
	// section 4.1 of RFC5880
	Length int64 `json:"length,omitempty"`
	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the BFD
	// packet. This is specified in section 4.1 of RFC5880
	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
	// MinRxIntervalMs: The Required Min RX Interval value in the BFD packet. This
	// is specified in section 4.1 of RFC5880
	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet. This
	// is specified in section 4.1 of RFC5880
	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
	// Multiplier: The detection time multiplier of the BFD packet. This is
	// specified in section 4.1 of RFC5880
	Multiplier int64 `json:"multiplier,omitempty"`
	// Multipoint: The multipoint bit of the BFD packet. This is specified in
	// section 4.1 of RFC5880
	Multipoint bool `json:"multipoint,omitempty"`
	// MyDiscriminator: The My Discriminator value in the BFD packet. This is
	// specified in section 4.1 of RFC5880
	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
	// Poll: The Poll bit of the BFD packet. This is specified in section 4.1 of
	// RFC5880
	Poll bool `json:"poll,omitempty"`
	// State: The current BFD session state as seen by the transmitting system.
	// These states are specified in section 4.1 of RFC5880
	//
	// Possible values:
	//   "ADMIN_DOWN"
	//   "DOWN"
	//   "INIT"
	//   "STATE_UNSPECIFIED"
	//   "UP"
	State string `json:"state,omitempty"`
	// Version: The version number of the BFD protocol, as specified in section 4.1
	// of RFC5880.
	Version int64 `json:"version,omitempty"`
	// YourDiscriminator: The Your Discriminator value in the BFD packet. This is
	// specified in section 4.1 of RFC5880
	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AuthenticationPresent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BfdPacket) MarshalJSON() ([]byte, error) {
	type NoMethod BfdPacket
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BfdStatus: Next free: 15
type BfdStatus struct {
	// BfdSessionInitializationMode: The BFD session initialization mode for this
	// BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session
	// for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the
	// peer router to initiate the BFD session for this BGP peer. If set to
	// DISABLED, BFD is disabled for this BGP peer.
	//
	// Possible values:
	//   "ACTIVE"
	//   "DISABLED"
	//   "PASSIVE"
	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
	// update.
	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
	// ControlPacketCounts: Control packet counts for the current BFD session.
	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
	// ControlPacketIntervals: Inter-packet time interval statistics for control
	// packets.
	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
	// EchoPacketCounts: Echo packet counts for the current BFD session.
	EchoPacketCounts *BfdStatusPacketCounts `json:"echoPacketCounts,omitempty"`
	// EchoPacketIntervals: Inter-packet time interval statistics for echo packets.
	EchoPacketIntervals []*PacketIntervals `json:"echoPacketIntervals,omitempty"`
	// LocalDiagnostic: The diagnostic code specifies the local system's reason for
	// the last change in session state. This allows remote systems to determine
	// the reason that the previous session failed, for example. These diagnostic
	// codes are specified in section 4.1 of RFC5880
	//
	// Possible values:
	//   "ADMINISTRATIVELY_DOWN"
	//   "CONCATENATED_PATH_DOWN"
	//   "CONTROL_DETECTION_TIME_EXPIRED"
	//   "DIAGNOSTIC_UNSPECIFIED"
	//   "ECHO_FUNCTION_FAILED"
	//   "FORWARDING_PLANE_RESET"
	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
	//   "NO_DIAGNOSTIC"
	//   "PATH_DOWN"
	//   "REVERSE_CONCATENATED_PATH_DOWN"
	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
	// LocalState: The current BFD session state as seen by the transmitting
	// system. These states are specified in section 4.1 of RFC5880
	//
	// Possible values:
	//   "ADMIN_DOWN"
	//   "DOWN"
	//   "INIT"
	//   "STATE_UNSPECIFIED"
	//   "UP"
	LocalState string `json:"localState,omitempty"`
	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for control
	// packets.
	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
	// NegotiatedLocalEchoTxIntervalMs: Negotiated transmit interval for echo
	// packets.
	NegotiatedLocalEchoTxIntervalMs int64 `json:"negotiatedLocalEchoTxIntervalMs,omitempty"`
	// RxPacket: The most recent Rx control packet for this BFD session.
	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
	// TxPacket: The most recent Tx control packet for this BFD session.
	TxPacket *BfdPacket `json:"txPacket,omitempty"`
	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session is not
	// up.
	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
	// UsingEchoMode: Indicates if echo mode is currently being used.
	UsingEchoMode bool `json:"usingEchoMode,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BfdSessionInitializationMode") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BfdSessionInitializationMode") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BfdStatus) MarshalJSON() ([]byte, error) {
	type NoMethod BfdStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BfdStatusPacketCounts struct {
	// NumRx: Number of packets received since the beginning of the current BFD
	// session.
	NumRx int64 `json:"numRx,omitempty"`
	// NumRxRejected: Number of packets received that were rejected because of
	// errors since the beginning of the current BFD session.
	NumRxRejected int64 `json:"numRxRejected,omitempty"`
	// NumRxSuccessful: Number of packets received that were successfully processed
	// since the beginning of the current BFD session.
	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
	// NumTx: Number of packets transmitted since the beginning of the current BFD
	// session.
	NumTx int64 `json:"numTx,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NumRx") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NumRx") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
	type NoMethod BfdStatusPacketCounts
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BgpRoute struct {
	// AsPaths: [Output only] AS-PATH for the route
	AsPaths []*BgpRouteAsPath `json:"asPaths,omitempty"`
	// Communities: [Output only] BGP communities in human-readable A:B format.
	Communities []string `json:"communities,omitempty"`
	// Destination: [Output only] Destination IP range for the route, in
	// human-readable CIDR format
	Destination *BgpRouteNetworkLayerReachabilityInformation `json:"destination,omitempty"`
	// Med: [Output only] BGP multi-exit discriminator
	Med int64 `json:"med,omitempty"`
	// Origin: [Output only] BGP origin (EGP, IGP or INCOMPLETE)
	//
	// Possible values:
	//   "BGP_ORIGIN_EGP"
	//   "BGP_ORIGIN_IGP"
	//   "BGP_ORIGIN_INCOMPLETE"
	Origin string `json:"origin,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AsPaths") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AsPaths") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BgpRoute) MarshalJSON() ([]byte, error) {
	type NoMethod BgpRoute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BgpRouteAsPath struct {
	// Asns: [Output only] ASNs in the path segment. When type is SEQUENCE, these
	// are ordered.
	Asns []int64 `json:"asns,omitempty"`
	// Type: [Output only] Type of AS-PATH segment (SEQUENCE or SET)
	//
	// Possible values:
	//   "AS_PATH_TYPE_SEQUENCE"
	//   "AS_PATH_TYPE_SET"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asns") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asns") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BgpRouteAsPath) MarshalJSON() ([]byte, error) {
	type NoMethod BgpRouteAsPath
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BgpRouteNetworkLayerReachabilityInformation: Network Layer Reachability
// Information (NLRI) for a route.
type BgpRouteNetworkLayerReachabilityInformation struct {
	// PathId: If the BGP session supports multiple paths (RFC 7911), the path
	// identifier for this route.
	PathId int64 `json:"pathId,omitempty"`
	// Prefix: Human readable CIDR notation for a prefix. E.g. 10.42.0.0/16.
	Prefix string `json:"prefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PathId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PathId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BgpRouteNetworkLayerReachabilityInformation) MarshalJSON() ([]byte, error) {
	type NoMethod BgpRouteNetworkLayerReachabilityInformation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Binding: Associates `members`, or principals, with a `role`.
type Binding struct {
	// BindingId: This is deprecated and has no effect. Do not use.
	BindingId string `json:"bindingId,omitempty"`
	// Condition: The condition that is associated with this binding. If the
	// condition evaluates to `true`, then this binding applies to the current
	// request. If the condition evaluates to `false`, then this binding does not
	// apply to the current request. However, a different role binding might grant
	// the same role to one or more of the principals in this binding. To learn
	// which resources support conditions in their IAM policies, see the IAM
	// documentation
	// (https://cloud.google.com/iam/help/conditions/resource-policies).
	Condition *Expr `json:"condition,omitempty"`
	// Members: Specifies the principals requesting access for a Google Cloud
	// resource. `members` can have the following values: * `allUsers`: A special
	// identifier that represents anyone who is on the internet; with or without a
	// Google account. * `allAuthenticatedUsers`: A special identifier that
	// represents anyone who is authenticated with a Google account or a service
	// account. Does not include identities that come from external identity
	// providers (IdPs) through identity federation. * `user:{emailid}`: An email
	// address that represents a specific Google account. For example,
	// `alice@example.com` . * `serviceAccount:{emailid}`: An email address that
	// represents a Google service account. For example,
	// `my-other-app@appspot.gserviceaccount.com`. *
	// `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An
	// identifier for a Kubernetes service account
	// (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).
	// For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. *
	// `group:{emailid}`: An email address that represents a Google group. For
	// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain
	// (primary) that represents all the users of that domain. For example,
	// `google.com` or `example.com`. *
	// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/sub
	// ject/{subject_attribute_value}`: A single identity in a workforce identity
	// pool. *
	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
	// group/{group_id}`: All workforce identities in a group. *
	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
	// attribute.{attribute_name}/{attribute_value}`: All workforce identities with
	// a specific attribute value. *
	// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/
	// *`: All identities in a workforce identity pool. *
	// `principal://iam.googleapis.com/projects/{project_number}/locations/global/wo
	// rkloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single
	// identity in a workload identity pool. *
	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
	// /workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool
	// group. *
	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
	// /workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}
	// `: All identities in a workload identity pool with a certain attribute. *
	// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global
	// /workloadIdentityPools/{pool_id}/*`: All identities in a workload identity
	// pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
	// unique identifier) representing a user that has been recently deleted. For
	// example, `alice@example.com?uid=123456789012345678901`. If the user is
	// recovered, this value reverts to `user:{emailid}` and the recovered user
	// retains the role in the binding. *
	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
	// unique identifier) representing a service account that has been recently
	// deleted. For example,
	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the
	// service account is undeleted, this value reverts to
	// `serviceAccount:{emailid}` and the undeleted service account retains the
	// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email
	// address (plus unique identifier) representing a Google group that has been
	// recently deleted. For example,
	// `admins@example.com?uid=123456789012345678901`. If the group is recovered,
	// this value reverts to `group:{emailid}` and the recovered group retains the
	// role in the binding. *
	// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool
	// _id}/subject/{subject_attribute_value}`: Deleted single identity in a
	// workforce identity pool. For example,
	// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-po
	// ol-id/subject/my-subject-attribute-value`.
	Members []string `json:"members,omitempty"`
	// Role: Role that is assigned to the list of `members`, or principals. For
	// example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview
	// of the IAM roles and permissions, see the IAM documentation
	// (https://cloud.google.com/iam/docs/roles-overview). For a list of the
	// available pre-defined roles, see here
	// (https://cloud.google.com/iam/docs/understanding-roles).
	Role string `json:"role,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BindingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BindingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Binding) MarshalJSON() ([]byte, error) {
	type NoMethod Binding
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BulkInsertDiskResource: A transient resource used in
// compute.disks.bulkInsert and compute.regionDisks.bulkInsert. It is only used
// to process requests and is not persisted.
type BulkInsertDiskResource struct {
	// SourceConsistencyGroupPolicy: The URL of the DiskConsistencyGroupPolicy for
	// the group of disks to clone. This may be a full or partial URL, such as: -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /resourcePolicies/resourcePolicy -
	// projects/project/regions/region/resourcePolicies/resourcePolicy -
	// regions/region/resourcePolicies/resourcePolicy
	SourceConsistencyGroupPolicy string `json:"sourceConsistencyGroupPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "SourceConsistencyGroupPolicy") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SourceConsistencyGroupPolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BulkInsertDiskResource) MarshalJSON() ([]byte, error) {
	type NoMethod BulkInsertDiskResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BulkInsertInstanceResource: A transient resource used in
// compute.instances.bulkInsert and compute.regionInstances.bulkInsert . This
// resource is not persisted anywhere, it is used only for processing the
// requests.
type BulkInsertInstanceResource struct {
	// Count: The maximum number of instances to create.
	Count int64 `json:"count,omitempty,string"`
	// InstanceProperties: The instance properties defining the VM instances to be
	// created. Required if sourceInstanceTemplate is not provided.
	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
	// LocationPolicy: Policy for chosing target zone. For more information, see
	// Create VMs in bulk .
	LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"`
	// MinCount: The minimum number of instances to create. If no min_count is
	// specified then count is used as the default value. If min_count instances
	// cannot be created, then no instances will be created and instances already
	// created will be deleted.
	MinCount int64 `json:"minCount,omitempty,string"`
	// NamePattern: The string pattern used for the names of the VMs. Either
	// name_pattern or per_instance_properties must be set. The pattern must
	// contain one continuous sequence of placeholder hash characters (#) with each
	// character corresponding to one digit of the generated instance name.
	// Example: a name_pattern of inst-#### generates instance names such as
	// inst-0001 and inst-0002. If existing instances in the same project and zone
	// have names that match the name pattern then the generated instance numbers
	// start after the biggest existing number. For example, if there exists an
	// instance with name inst-0050, then instance names generated using the
	// pattern inst-#### begin with inst-0051. The name pattern placeholder #...#
	// can contain up to 18 characters.
	NamePattern string `json:"namePattern,omitempty"`
	// PerInstanceProperties: Per-instance properties to be set on individual
	// instances. Keys of this map specify requested instance names. Can be empty
	// if name_pattern is used.
	PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"`
	// SourceInstanceTemplate: Specifies the instance template from which to create
	// instances. You may combine sourceInstanceTemplate with instanceProperties to
	// override specific values from an existing instance template. Bulk API
	// follows the semantics of JSON Merge Patch described by RFC 7396. It can be a
	// full or partial URL. For example, the following are all valid URLs to an
	// instance template: - https://www.googleapis.com/compute/v1/projects/project
	// /global/instanceTemplates/instanceTemplate -
	// projects/project/global/instanceTemplates/instanceTemplate -
	// global/instanceTemplates/instanceTemplate This field is optional.
	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BulkInsertInstanceResource) MarshalJSON() ([]byte, error) {
	type NoMethod BulkInsertInstanceResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BulkInsertInstanceResourcePerInstanceProperties: Per-instance properties to
// be set on individual instances. To be extended in the future.
type BulkInsertInstanceResourcePerInstanceProperties struct {
	// Hostname: Specifies the hostname of the instance. More details in:
	// https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention
	Hostname string `json:"hostname,omitempty"`
	// Name: This field is only temporary. It will be removed. Do not use it.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Hostname") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Hostname") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) {
	type NoMethod BulkInsertInstanceResourcePerInstanceProperties
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BulkInsertOperationStatus struct {
	// CreatedVmCount: [Output Only] Count of VMs successfully created so far.
	CreatedVmCount int64 `json:"createdVmCount,omitempty"`
	// DeletedVmCount: [Output Only] Count of VMs that got deleted during rollback.
	DeletedVmCount int64 `json:"deletedVmCount,omitempty"`
	// FailedToCreateVmCount: [Output Only] Count of VMs that started creating but
	// encountered an error.
	FailedToCreateVmCount int64 `json:"failedToCreateVmCount,omitempty"`
	// Status: [Output Only] Creation status of BulkInsert operation - information
	// if the flow is rolling forward or rolling back.
	//
	// Possible values:
	//   "CREATING" - Rolling forward - creating VMs.
	//   "DONE" - Done
	//   "ROLLING_BACK" - Rolling back - cleaning up after an error.
	//   "STATUS_UNSPECIFIED"
	Status string `json:"status,omitempty"`
	// TargetVmCount: [Output Only] Count of VMs originally planned to be created.
	TargetVmCount int64 `json:"targetVmCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreatedVmCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreatedVmCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BulkInsertOperationStatus) MarshalJSON() ([]byte, error) {
	type NoMethod BulkInsertOperationStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BundledLocalSsds struct {
	// DefaultInterface: The default disk interface if the interface is not
	// specified.
	DefaultInterface string `json:"defaultInterface,omitempty"`
	// PartitionCount: The number of partitions.
	PartitionCount int64 `json:"partitionCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultInterface") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultInterface") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s BundledLocalSsds) MarshalJSON() ([]byte, error) {
	type NoMethod BundledLocalSsds
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CacheInvalidationRule struct {
	// Host: If set, this invalidation rule will only apply to requests with a Host
	// header matching host.
	Host string `json:"host,omitempty"`
	Path string `json:"path,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Host") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Host") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CacheInvalidationRule) MarshalJSON() ([]byte, error) {
	type NoMethod CacheInvalidationRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CacheKeyPolicy: Message containing what to include in the cache key for a
// request for Cloud CDN.
type CacheKeyPolicy struct {
	// IncludeHost: If true, requests to different hosts will be cached separately.
	IncludeHost bool `json:"includeHost,omitempty"`
	// IncludeHttpHeaders: Allows HTTP request headers (by name) to be used in the
	// cache key.
	IncludeHttpHeaders []string `json:"includeHttpHeaders,omitempty"`
	// IncludeNamedCookies: Allows HTTP cookies (by name) to be used in the cache
	// key. The name=value pair will be used in the cache key Cloud CDN generates.
	IncludeNamedCookies []string `json:"includeNamedCookies,omitempty"`
	// IncludeProtocol: If true, http and https requests will be cached separately.
	IncludeProtocol bool `json:"includeProtocol,omitempty"`
	// IncludeQueryString: If true, include query string parameters in the cache
	// key according to query_string_whitelist and query_string_blacklist. If
	// neither is set, the entire query string will be included. If false, the
	// query string will be excluded from the cache key entirely.
	IncludeQueryString bool `json:"includeQueryString,omitempty"`
	// QueryStringBlacklist: Names of query string parameters to exclude in cache
	// keys. All other parameters will be included. Either specify
	// query_string_whitelist or query_string_blacklist, not both. '&' and '=' will
	// be percent encoded and not treated as delimiters.
	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
	// QueryStringWhitelist: Names of query string parameters to include in cache
	// keys. All other parameters will be excluded. Either specify
	// query_string_whitelist or query_string_blacklist, not both. '&' and '=' will
	// be percent encoded and not treated as delimiters.
	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeHost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CacheKeyPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod CacheKeyPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CallCredentials: [Deprecated] gRPC call credentials to access the SDS
// server. gRPC call credentials to access the SDS server.
type CallCredentials struct {
	// CallCredentialType: The type of call credentials to use for GRPC requests to
	// the SDS server. This field can be set to one of the following: - GCE_VM: The
	// local GCE VM service account credentials are used to access the SDS server.
	// - FROM_PLUGIN: Custom authenticator credentials are used to access the SDS
	// server.
	//
	// Possible values:
	//   "FROM_PLUGIN" - Custom authenticator credentials are used to access the
	// SDS server.
	//   "GCE_VM" - The local GCE VM service account credentials are used to access
	// the SDS server.
	//   "INVALID"
	CallCredentialType string `json:"callCredentialType,omitempty"`
	// FromPlugin: Custom authenticator credentials. Valid if callCredentialType is
	// FROM_PLUGIN.
	FromPlugin *MetadataCredentialsFromPlugin `json:"fromPlugin,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallCredentialType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallCredentialType") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CallCredentials) MarshalJSON() ([]byte, error) {
	type NoMethod CallCredentials
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ChannelCredentials: [Deprecated] gRPC channel credentials to access the SDS
// server. gRPC channel credentials to access the SDS server.
type ChannelCredentials struct {
	// Certificates: The call credentials to access the SDS server.
	Certificates *TlsCertificatePaths `json:"certificates,omitempty"`
	// ChannelCredentialType: The channel credentials to access the SDS server.
	// This field can be set to one of the following: CERTIFICATES: Use TLS
	// certificates to access the SDS server. GCE_VM: Use local GCE VM credentials
	// to access the SDS server.
	//
	// Possible values:
	//   "CERTIFICATES" - Use TLS certificates to access the SDS server.
	//   "GCE_VM" - Use local GCE VM credentials to access the SDS server.
	//   "INVALID"
	ChannelCredentialType string `json:"channelCredentialType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Certificates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Certificates") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ChannelCredentials) MarshalJSON() ([]byte, error) {
	type NoMethod ChannelCredentials
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CircuitBreakers: Settings controlling the volume of requests, connections
// and retries to this backend service.
type CircuitBreakers struct {
	// ConnectTimeout: The timeout for new network connections to hosts.
	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
	// MaxConnections: The maximum number of connections to the backend service. If
	// not specified, there is no limit. Not supported when the backend service is
	// referenced by a URL map that is bound to target gRPC proxy that has
	// validateForProxyless field set to true.
	MaxConnections int64 `json:"maxConnections,omitempty"`
	// MaxPendingRequests: The maximum number of pending requests allowed to the
	// backend service. If not specified, there is no limit. Not supported when the
	// backend service is referenced by a URL map that is bound to target gRPC
	// proxy that has validateForProxyless field set to true.
	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
	// MaxRequests: The maximum number of parallel requests that allowed to the
	// backend service. If not specified, there is no limit.
	MaxRequests int64 `json:"maxRequests,omitempty"`
	// MaxRequestsPerConnection: Maximum requests for a single connection to the
	// backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2
	// implementations. If not specified, there is no limit. Setting this parameter
	// to 1 will effectively disable keep alive. Not supported when the backend
	// service is referenced by a URL map that is bound to target gRPC proxy that
	// has validateForProxyless field set to true.
	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
	// MaxRetries: The maximum number of parallel retries allowed to the backend
	// cluster. If not specified, the default is 1. Not supported when the backend
	// service is referenced by a URL map that is bound to target gRPC proxy that
	// has validateForProxyless field set to true.
	MaxRetries int64 `json:"maxRetries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectTimeout") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CircuitBreakers) MarshalJSON() ([]byte, error) {
	type NoMethod CircuitBreakers
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ClientTlsSettings: [Deprecated] The client side authentication settings for
// connection originating from the backend service. the backend service.
type ClientTlsSettings struct {
	// ClientTlsContext: Configures the mechanism to obtain client-side security
	// certificates and identity information. This field is only applicable when
	// mode is set to MUTUAL.
	ClientTlsContext *TlsContext `json:"clientTlsContext,omitempty"`
	// Mode: Indicates whether connections to this port should be secured using
	// TLS. The value of this field determines how TLS is enforced. This can be set
	// to one of the following values: DISABLE: Do not setup a TLS connection to
	// the backends. SIMPLE: Originate a TLS connection to the backends. MUTUAL:
	// Secure connections to the backends using mutual TLS by presenting client
	// certificates for authentication.
	//
	// Possible values:
	//   "DISABLE" - Do not setup a TLS connection to the backends.
	//   "INVALID"
	//   "MUTUAL" - Secure connections to the backends using mutual TLS by
	// presenting client certificates for authentication.
	//   "SIMPLE" - Originate a TLS connection to the backends.
	Mode string `json:"mode,omitempty"`
	// Sni: SNI string to present to the server during TLS handshake. This field is
	// applicable only when mode is SIMPLE or MUTUAL.
	Sni string `json:"sni,omitempty"`
	// SubjectAltNames: A list of alternate names to verify the subject identity in
	// the certificate.If specified, the proxy will verify that the server
	// certificate's subject alt name matches one of the specified values. This
	// field is applicable only when mode is SIMPLE or MUTUAL.
	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClientTlsContext") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClientTlsContext") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ClientTlsSettings) MarshalJSON() ([]byte, error) {
	type NoMethod ClientTlsSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Commitment: Represents a regional Commitment resource. Creating a commitment
// resource means that you are purchasing a committed use contract with an
// explicit start and end time. You can create commitments based on vCPUs and
// memory usage and receive discounted rates. For full details, read Signing Up
// for Committed Use Discounts.
type Commitment struct {
	// AutoRenew: Specifies whether to enable automatic renewal for the commitment.
	// The default value is false if not specified. The field can be updated until
	// the day of the commitment expiration at 12:00am PST. If the field is set to
	// true, the commitment will be automatically renewed for either one or three
	// years according to the terms of the existing commitment.
	AutoRenew bool `json:"autoRenew,omitempty"`
	// Category: The category of the commitment. Category MACHINE specifies
	// commitments composed of machine resources such as VCPU or MEMORY, listed in
	// resources. Category LICENSE specifies commitments composed of software
	// licenses, listed in licenseResources. Note that only MACHINE commitments
	// should have a Type specified.
	//
	// Possible values:
	//   "CATEGORY_UNSPECIFIED"
	//   "LICENSE"
	//   "MACHINE"
	Category string `json:"category,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomEndTimestamp: [Input Only] Optional, specifies the CUD end time
	// requested by the customer in RFC3339 text format. Needed when the customer
	// wants CUD's end date is later than the start date + term duration.
	CustomEndTimestamp string `json:"customEndTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text format.
	EndTimestamp string `json:"endTimestamp,omitempty"`
	// ExistingReservations: Specifies the already existing reservations to attach
	// to the Commitment. This field is optional, and it can be a full or partial
	// URL. For example, the following are valid URLs to an reservation: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /reservations/reservation -
	// projects/project/zones/zone/reservations/reservation
	ExistingReservations []string `json:"existingReservations,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#commitment for
	// commitments.
	Kind string `json:"kind,omitempty"`
	// LicenseResource: The license specification required as part of a license
	// commitment.
	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
	// MergeSourceCommitments: List of source commitments to be merged into a new
	// commitment.
	MergeSourceCommitments []string `json:"mergeSourceCommitments,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Plan: The plan for this commitment, which determines duration and discount
	// rate. The currently supported plans are TWELVE_MONTH (1 year), and
	// THIRTY_SIX_MONTH (3 years).
	//
	// Possible values:
	//   "INVALID"
	//   "THIRTY_SIX_MONTH"
	//   "TWELVE_MONTH"
	Plan string `json:"plan,omitempty"`
	// Region: [Output Only] URL of the region where this commitment may be used.
	Region string `json:"region,omitempty"`
	// Reservations: List of create-on-create reservations for this commitment.
	Reservations []*Reservation `json:"reservations,omitempty"`
	// ResourceStatus: [Output Only] Status information for Commitment resource.
	ResourceStatus *CommitmentResourceStatus `json:"resourceStatus,omitempty"`
	// Resources: A list of commitment amounts for particular resources. Note that
	// VCPU and MEMORY resource commitments must occur together.
	Resources []*ResourceCommitment `json:"resources,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SplitSourceCommitment: Source commitment to be split into a new commitment.
	SplitSourceCommitment string `json:"splitSourceCommitment,omitempty"`
	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text format.
	StartTimestamp string `json:"startTimestamp,omitempty"`
	// Status: [Output Only] Status of the commitment with regards to eventual
	// expiration (each commitment has an end date defined). One of the following
	// values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
	//
	// Possible values:
	//   "ACTIVE"
	//   "CANCELED_EARLY_TERMINATION"
	//   "CANCELING"
	//   "CANCELLED" - Deprecate CANCELED status. Will use separate status to
	// differentiate cancel by mergeCud or manual cancellation.
	//   "CREATING"
	//   "EXPIRED"
	//   "NOT_YET_ACTIVE"
	Status string `json:"status,omitempty"`
	// StatusMessage: [Output Only] An optional, human-readable explanation of the
	// status.
	StatusMessage string `json:"statusMessage,omitempty"`
	// Type: The type of commitment, which affects the discount rate and the
	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will
	// only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED
	// specifies a commitment that will only apply to accelerator optimized
	// machines.
	//
	// Possible values:
	//   "ACCELERATOR_OPTIMIZED"
	//   "ACCELERATOR_OPTIMIZED_A3"
	//   "ACCELERATOR_OPTIMIZED_A3_MEGA"
	//   "COMPUTE_OPTIMIZED"
	//   "COMPUTE_OPTIMIZED_C2D"
	//   "COMPUTE_OPTIMIZED_C3"
	//   "COMPUTE_OPTIMIZED_C3D"
	//   "COMPUTE_OPTIMIZED_H3"
	//   "GENERAL_PURPOSE"
	//   "GENERAL_PURPOSE_C4"
	//   "GENERAL_PURPOSE_E2"
	//   "GENERAL_PURPOSE_N2"
	//   "GENERAL_PURPOSE_N2D"
	//   "GENERAL_PURPOSE_N4"
	//   "GENERAL_PURPOSE_T2D"
	//   "GRAPHICS_OPTIMIZED"
	//   "MEMORY_OPTIMIZED"
	//   "MEMORY_OPTIMIZED_M3"
	//   "MEMORY_OPTIMIZED_X4"
	//   "STORAGE_OPTIMIZED_Z3"
	//   "TYPE_UNSPECIFIED"
	Type string `json:"type,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AutoRenew") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoRenew") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Commitment) MarshalJSON() ([]byte, error) {
	type NoMethod Commitment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CommitmentAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of CommitmentsScopedList resources.
	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#commitmentAggregatedList for aggregated lists of commitments.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CommitmentAggregatedListWarning: [Output Only] Informational warning
// message.
type CommitmentAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CommitmentAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CommitmentList: Contains a list of Commitment resources.
type CommitmentList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Commitment resources.
	Items []*Commitment `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#commitmentList for
	// lists of commitments.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *CommitmentListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentList) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CommitmentListWarning: [Output Only] Informational warning message.
type CommitmentListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*CommitmentListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CommitmentListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CommitmentResourceStatus: [Output Only] Contains output only fields.
type CommitmentResourceStatus struct {
	// CancellationInformation: [Output Only] An optional, contains all the needed
	// information of cancellation.
	CancellationInformation *CommitmentResourceStatusCancellationInformation `json:"cancellationInformation,omitempty"`
	// CustomTermEligibilityEndTimestamp: [Output Only] Indicates the end time of
	// customer's eligibility to send custom term requests in RFC3339 text format.
	// Term extension requests that (not the end time in the request) after this
	// time will be rejected.
	CustomTermEligibilityEndTimestamp string `json:"customTermEligibilityEndTimestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CancellationInformation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CancellationInformation") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CommitmentResourceStatusCancellationInformation struct {
	// CanceledCommitment: [Output Only] An optional amount of CUDs canceled so far
	// in the last 365 days.
	CanceledCommitment *Money `json:"canceledCommitment,omitempty"`
	// CanceledCommitmentLastUpdatedTimestamp: [Output Only] An optional last
	// update time of canceled_commitment. RFC3339 text format.
	CanceledCommitmentLastUpdatedTimestamp string `json:"canceledCommitmentLastUpdatedTimestamp,omitempty"`
	// CancellationCap: [Output Only] An optional,the cancellation cap for how much
	// commitments can be canceled in a rolling 365 per billing account.
	CancellationCap *Money `json:"cancellationCap,omitempty"`
	// CancellationFee: [Output Only] An optional, cancellation fee.
	CancellationFee *Money `json:"cancellationFee,omitempty"`
	// CancellationFeeExpirationTimestamp: [Output Only] An optional, cancellation
	// fee expiration time. RFC3339 text format.
	CancellationFeeExpirationTimestamp string `json:"cancellationFeeExpirationTimestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanceledCommitment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanceledCommitment") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentResourceStatusCancellationInformation) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentResourceStatusCancellationInformation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CommitmentsScopedList struct {
	// Commitments: [Output Only] A list of commitments contained in this scope.
	Commitments []*Commitment `json:"commitments,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// commitments when the list is empty.
	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Commitments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Commitments") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CommitmentsScopedListWarning: [Output Only] Informational warning which
// replaces the list of commitments when the list is empty.
type CommitmentsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CommitmentsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Condition: This is deprecated and has no effect. Do not use.
type Condition struct {
	// Iam: This is deprecated and has no effect. Do not use.
	//
	// Possible values:
	//   "APPROVER" - This is deprecated and has no effect. Do not use.
	//   "ATTRIBUTION" - This is deprecated and has no effect. Do not use.
	//   "AUTHORITY" - This is deprecated and has no effect. Do not use.
	//   "CREDENTIALS_TYPE" - This is deprecated and has no effect. Do not use.
	//   "CREDS_ASSERTION" - This is deprecated and has no effect. Do not use.
	//   "JUSTIFICATION_TYPE" - This is deprecated and has no effect. Do not use.
	//   "NO_ATTR" - This is deprecated and has no effect. Do not use.
	//   "SECURITY_REALM" - This is deprecated and has no effect. Do not use.
	Iam string `json:"iam,omitempty"`
	// Op: This is deprecated and has no effect. Do not use.
	//
	// Possible values:
	//   "DISCHARGED" - This is deprecated and has no effect. Do not use.
	//   "EQUALS" - This is deprecated and has no effect. Do not use.
	//   "IN" - This is deprecated and has no effect. Do not use.
	//   "NOT_EQUALS" - This is deprecated and has no effect. Do not use.
	//   "NOT_IN" - This is deprecated and has no effect. Do not use.
	//   "NO_OP" - This is deprecated and has no effect. Do not use.
	Op string `json:"op,omitempty"`
	// Svc: This is deprecated and has no effect. Do not use.
	Svc string `json:"svc,omitempty"`
	// Sys: This is deprecated and has no effect. Do not use.
	//
	// Possible values:
	//   "IP" - This is deprecated and has no effect. Do not use.
	//   "NAME" - This is deprecated and has no effect. Do not use.
	//   "NO_ATTR" - This is deprecated and has no effect. Do not use.
	//   "REGION" - This is deprecated and has no effect. Do not use.
	//   "SERVICE" - This is deprecated and has no effect. Do not use.
	Sys string `json:"sys,omitempty"`
	// Values: This is deprecated and has no effect. Do not use.
	Values []string `json:"values,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Iam") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Iam") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Condition) MarshalJSON() ([]byte, error) {
	type NoMethod Condition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ConfidentialInstanceConfig: A set of Confidential Instance options.
type ConfidentialInstanceConfig struct {
	// ConfidentialInstanceType: Defines the type of technology used by the
	// confidential instance.
	//
	// Possible values:
	//   "CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED" - No type specified. Do not use
	// this value.
	//   "SEV" - AMD Secure Encrypted Virtualization.
	//   "SEV_SNP" - AMD Secure Encrypted Virtualization - Secure Nested Paging.
	//   "TDX" - Intel Trust Domain eXtension.
	ConfidentialInstanceType string `json:"confidentialInstanceType,omitempty"`
	// EnableConfidentialCompute: Defines whether the instance should have
	// confidential compute enabled.
	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConfidentialInstanceType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConfidentialInstanceType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ConfidentialInstanceConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ConnectionDraining: Message containing connection draining configuration.
type ConnectionDraining struct {
	// DrainingTimeoutSec: Configures a duration timeout for existing requests on a
	// removed backend instance. For supported load balancers and protocols, as
	// described in Enabling connection draining.
	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ConnectionDraining) MarshalJSON() ([]byte, error) {
	type NoMethod ConnectionDraining
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ConsistentHashLoadBalancerSettings: This message defines settings for a
// consistent hash style load balancer.
type ConsistentHashLoadBalancerSettings struct {
	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP cookie
	// that will be used as the hash key for the consistent hash load balancer. If
	// the cookie is not present, it will be generated. This field is applicable if
	// the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend
	// service is referenced by a URL map that is bound to target gRPC proxy that
	// has validateForProxyless field set to true.
	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
	// HttpHeaderName: The hash based on the value of the specified header field.
	// This field is applicable if the sessionAffinity is set to HEADER_FIELD.
	HttpHeaderName string `json:"httpHeaderName,omitempty"`
	// MinimumRingSize: The minimum number of virtual nodes to use for the hash
	// ring. Defaults to 1024. Larger ring sizes result in more granular load
	// distributions. If the number of hosts in the load balancing pool is larger
	// than the ring size, each host will be assigned a single virtual node.
	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HttpCookie") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
	type NoMethod ConsistentHashLoadBalancerSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ConsistentHashLoadBalancerSettingsHttpCookie: The information about the HTTP
// Cookie on which the hash function is based for load balancing policies that
// use a consistent hash.
type ConsistentHashLoadBalancerSettingsHttpCookie struct {
	// Name: Name of the cookie.
	Name string `json:"name,omitempty"`
	// Path: Path to set for the cookie.
	Path string `json:"path,omitempty"`
	// Ttl: Lifetime of the cookie.
	Ttl *Duration `json:"ttl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CorsPolicy: The specification for allowing client-side cross-origin
// requests. For more information about the W3C recommendation for cross-origin
// resource sharing (CORS), see Fetch API Living Standard.
type CorsPolicy struct {
	// AllowCredentials: In response to a preflight request, setting this to true
	// indicates that the actual request can include user credentials. This field
	// translates to the Access-Control-Allow-Credentials header. Default is false.
	AllowCredentials bool `json:"allowCredentials,omitempty"`
	// AllowHeaders: Specifies the content for the Access-Control-Allow-Headers
	// header.
	AllowHeaders []string `json:"allowHeaders,omitempty"`
	// AllowMethods: Specifies the content for the Access-Control-Allow-Methods
	// header.
	AllowMethods []string `json:"allowMethods,omitempty"`
	// AllowOriginRegexes: Specifies a regular expression that matches allowed
	// origins. For more information, see regular expression syntax . An origin is
	// allowed if it matches either an item in allowOrigins or an item in
	// allowOriginRegexes. Regular expressions can only be used when the
	// loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
	// AllowOrigins: Specifies the list of origins that is allowed to do CORS
	// requests. An origin is allowed if it matches either an item in allowOrigins
	// or an item in allowOriginRegexes.
	AllowOrigins []string `json:"allowOrigins,omitempty"`
	// Disabled: If true, disables the CORS policy. The default value is false,
	// which indicates that the CORS policy is in effect.
	Disabled bool `json:"disabled,omitempty"`
	// ExposeHeaders: Specifies the content for the Access-Control-Expose-Headers
	// header.
	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
	// MaxAge: Specifies how long results of a preflight request can be cached in
	// seconds. This field translates to the Access-Control-Max-Age header.
	MaxAge int64 `json:"maxAge,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowCredentials") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CorsPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod CorsPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CustomErrorResponsePolicy: Specifies the custom error response policy that
// must be applied when the backend service or backend bucket responds with an
// error.
type CustomErrorResponsePolicy struct {
	// ErrorResponseRules: Specifies rules for returning error responses. In a
	// given policy, if you specify rules for both a range of error codes as well
	// as rules for specific error codes then rules with specific error codes have
	// a higher priority. For example, assume that you configure a rule for 401
	// (Un-authorized) code, and another for all 4 series error codes (4XX). If the
	// backend service returns a 401, then the rule for 401 will be applied.
	// However if the backend service returns a 403, the rule for 4xx takes effect.
	ErrorResponseRules []*CustomErrorResponsePolicyCustomErrorResponseRule `json:"errorResponseRules,omitempty"`
	// ErrorService: The full or partial URL to the BackendBucket resource that
	// contains the custom error content. Examples are: -
	// https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket
	// - compute/v1/projects/project/global/backendBuckets/myBackendBucket -
	// global/backendBuckets/myBackendBucket If errorService is not specified at
	// lower levels like pathMatcher, pathRule and routeRule, an errorService
	// specified at a higher level in the UrlMap will be used. If
	// UrlMap.defaultCustomErrorResponsePolicy contains one or more
	// errorResponseRules[], it must specify errorService. If load balancer cannot
	// reach the backendBucket, a simple Not Found Error will be returned, with the
	// original response code (or overrideResponseCode if configured). errorService
	// is not supported for internal or regional HTTP/HTTPS load balancers.
	ErrorService string `json:"errorService,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorResponseRules") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorResponseRules") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CustomErrorResponsePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod CustomErrorResponsePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CustomErrorResponsePolicyCustomErrorResponseRule: Specifies the mapping
// between the response code that will be returned along with the custom error
// content and the response code returned by the backend service.
type CustomErrorResponsePolicyCustomErrorResponseRule struct {
	// MatchResponseCodes: Valid values include: - A number between 400 and 599:
	// For example 401 or 503, in which case the load balancer applies the policy
	// if the error code exactly matches this value. - 5xx: Load Balancer will
	// apply the policy if the backend service responds with any response code in
	// the range of 500 to 599. - 4xx: Load Balancer will apply the policy if the
	// backend service responds with any response code in the range of 400 to 499.
	// Values must be unique within matchResponseCodes and across all
	// errorResponseRules of CustomErrorResponsePolicy.
	MatchResponseCodes []string `json:"matchResponseCodes,omitempty"`
	// OverrideResponseCode: The HTTP status code returned with the response
	// containing the custom error content. If overrideResponseCode is not
	// supplied, the same response code returned by the original backend bucket or
	// backend service is returned to the client.
	OverrideResponseCode int64 `json:"overrideResponseCode,omitempty"`
	// Path: The full path to a file within backendBucket . For example:
	// /errors/defaultError.html path must start with a leading slash. path cannot
	// have trailing slashes. If the file is not available in backendBucket or the
	// load balancer cannot reach the BackendBucket, a simple Not Found Error is
	// returned to the client. The value must be from 1 to 1024 characters
	Path string `json:"path,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchResponseCodes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchResponseCodes") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CustomErrorResponsePolicyCustomErrorResponseRule) MarshalJSON() ([]byte, error) {
	type NoMethod CustomErrorResponsePolicyCustomErrorResponseRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CustomerEncryptionKey struct {
	// KmsKeyName: The name of the encryption key that is stored in Google Cloud
	// KMS. For example: "kmsKeyName":
	// "projects/kms_project_id/locations/region/keyRings/
	// key_region/cryptoKeys/key The fully-qualifed key name may be returned for
	// resource GET requests. For example: "kmsKeyName":
	// "projects/kms_project_id/locations/region/keyRings/
	// key_region/cryptoKeys/key /cryptoKeyVersions/1
	KmsKeyName string `json:"kmsKeyName,omitempty"`
	// KmsKeyServiceAccount: The service account being used for the encryption
	// request for the given KMS key. If absent, the Compute Engine default service
	// account is used. For example: "kmsKeyServiceAccount":
	// "name@project_id.iam.gserviceaccount.com/
	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded in RFC
	// 4648 base64 to either encrypt or decrypt this resource. You can provide
	// either the rawKey or the rsaEncryptedKey. For example: "rawKey":
	// "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0="
	RawKey string `json:"rawKey,omitempty"`
	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
	// customer-supplied encryption key to either encrypt or decrypt this resource.
	// You can provide either the rawKey or the rsaEncryptedKey. For example:
	// "rsaEncryptedKey":
	// "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH
	// z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD
	// D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The
	// key must meet the following requirements before you can provide it to
	// Compute Engine: 1. The key is wrapped using a RSA public key certificate
	// provided by Google. 2. After being wrapped, the key must be encoded in RFC
	// 4648 base64 encoding. Gets the RSA public key certificate provided by Google
	// at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
	// customer-supplied encryption key that protects this resource.
	Sha256 string `json:"sha256,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KmsKeyName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
	type NoMethod CustomerEncryptionKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CustomerEncryptionKeyProtectedDisk struct {
	// DiskEncryptionKey: Decrypts data associated with the disk with a
	// customer-supplied encryption key.
	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
	// Source: Specifies a valid partial or full URL to an existing Persistent Disk
	// resource. This field is only applicable for persistent disks. For example:
	// "source": "/compute/v1/projects/project_id/zones/zone/disks/ disk_name
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
	type NoMethod CustomerEncryptionKeyProtectedDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DeprecationStatus: Deprecation status for a public resource.
type DeprecationStatus struct {
	// Deleted: An optional RFC3339 timestamp on or after which the state of this
	// resource is intended to change to DELETED. This is only informational and
	// the status will not change unless the client explicitly changes it.
	Deleted string `json:"deleted,omitempty"`
	// Deprecated -- An optional RFC3339 timestamp on or after which the state of
	// this resource is intended to change to DEPRECATED. This is only
	// informational and the status will not change unless the client explicitly
	// changes it.
	Deprecated string `json:"deprecated,omitempty"`
	// Obsolete: An optional RFC3339 timestamp on or after which the state of this
	// resource is intended to change to OBSOLETE. This is only informational and
	// the status will not change unless the client explicitly changes it.
	Obsolete string `json:"obsolete,omitempty"`
	// Replacement: The URL of the suggested replacement for a deprecated resource.
	// The suggested replacement resource must be the same kind of resource as the
	// deprecated resource.
	Replacement string `json:"replacement,omitempty"`
	// State: The deprecation state of this resource. This can be ACTIVE,
	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of
	// life date for an image, can use ACTIVE. Operations which create a new
	// resource using a DEPRECATED resource will return successfully, but with a
	// warning indicating the deprecated resource and recommending its replacement.
	// Operations which use OBSOLETE or DELETED resources will be rejected and
	// result in an error.
	//
	// Possible values:
	//   "ACTIVE"
	//   "DELETED"
	//   "DEPRECATED"
	//   "OBSOLETE"
	State string `json:"state,omitempty"`
	// StateOverride: The rollout policy for this deprecation. This policy is only
	// enforced by image family views. The rollout policy restricts the zones where
	// the associated resource is considered in a deprecated state. When the
	// rollout policy does not include the user specified zone, or if the zone is
	// rolled out, the associated resource is considered in a deprecated state. The
	// rollout policy for this deprecation is read-only, except for allowlisted
	// users. This field might not be configured. To view the latest non-deprecated
	// image in a specific zone, use the imageFamilyViews.get method.
	StateOverride *RolloutPolicy `json:"stateOverride,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Deleted") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Deleted") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DeprecationStatus) MarshalJSON() ([]byte, error) {
	type NoMethod DeprecationStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Disk: Represents a Persistent Disk resource. Google Compute Engine has two
// Disk resources: * Zonal (/compute/docs/reference/rest/alpha/disks) *
// Regional (/compute/docs/reference/rest/alpha/regionDisks) Persistent disks
// are required for running your VM instances. Create both boot and non-boot
// (data) persistent disks. For more information, read Persistent Disks. For
// more storage options, read Storage options. The disks resource represents a
// zonal persistent disk. For more information, read Zonal persistent disks.
// The regionDisks resource represents a regional persistent disk. For more
// information, read Regional resources.
type Disk struct {
	// AccessMode: The access mode of the disk. - READ_WRITE_SINGLE: The default
	// AccessMode, means the disk can be attached to single instance in RW mode. -
	// READ_WRITE_MANY: The AccessMode means the disk can be attached to multiple
	// instances in RW mode. - READ_ONLY_MANY: The AccessMode means the disk can be
	// attached to multiple instances in RO mode. The AccessMode is only valid for
	// Hyperdisk disk types.
	//
	// Possible values:
	//   "READ_ONLY_MANY" - The AccessMode means the disk can be attached to
	// multiple instances in RO mode.
	//   "READ_WRITE_MANY" - The AccessMode means the disk can be attached to
	// multiple instances in RW mode.
	//   "READ_WRITE_SINGLE" - The default AccessMode, means the disk can be
	// attached to single instance in RW mode.
	AccessMode string `json:"accessMode,omitempty"`
	// Architecture: The architecture of the disk. Valid values are ARM64 or
	// X86_64.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// AsyncPrimaryDisk: Disk asynchronously replicated into this disk.
	AsyncPrimaryDisk *DiskAsyncReplication `json:"asyncPrimaryDisk,omitempty"`
	// AsyncSecondaryDisks: [Output Only] A list of disks this disk is
	// asynchronously replicated to.
	AsyncSecondaryDisks map[string]DiskAsyncReplicationList `json:"asyncSecondaryDisks,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DiskEncryptionKey: Encrypts the disk using a customer-supplied encryption
	// key or a customer-managed encryption key. Encryption keys do not protect
	// access to metadata of the disk. After you encrypt a disk with a
	// customer-supplied key, you must provide the same key if you use the disk
	// later. For example, to create a disk snapshot, to create a disk image, to
	// create a machine image, or to attach the disk to a virtual machine. After
	// you encrypt a disk with a customer-managed key, the
	// diskEncryptionKey.kmsKeyName is set to a key *version* name once the disk is
	// created. The disk is encrypted with this version of the key. In the
	// response, diskEncryptionKey.kmsKeyName appears in the following format:
	// "diskEncryptionKey.kmsKeyName":
	// "projects/kms_project_id/locations/region/keyRings/
	// key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not provide
	// an encryption key when creating the disk, then the disk is encrypted using
	// an automatically generated key and you don't need to provide a key to use
	// the disk later.
	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
	// EnableConfidentialCompute: Whether this disk is using confidential compute
	// mode.
	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
	// EraseWindowsVssSignature: Specifies whether the disk restored from a source
	// snapshot should erase Windows specific VSS signature.
	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
	// GuestOsFeatures: A list of features to enable on the guest operating system.
	// Applicable only for bootable images. Read Enabling guest operating system
	// features to see a list of available options.
	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Interface: [Deprecated] Specifies the disk interface to use for attaching
	// this disk, which is either SCSI or NVME. The default is SCSI.
	//
	// Possible values:
	//   "NVME"
	//   "SCSI"
	//   "UNSPECIFIED"
	Interface string `json:"interface,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#disk for disks.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this disk,
	// which is essentially a hash of the labels set used for optimistic locking.
	// The fingerprint is initially generated by Compute Engine and changes after
	// every request to modify or update labels. You must always provide an
	// up-to-date fingerprint hash in order to update or change labels, otherwise
	// the request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make a get() request to retrieve a disk.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels to apply to this disk. These can be later modified by the
	// setLabels method.
	Labels map[string]string `json:"labels,omitempty"`
	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339 text
	// format.
	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339 text
	// format.
	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
	// LicenseCodes: Integer license codes indicating which licenses are attached
	// to this disk.
	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
	// Licenses: A list of publicly visible licenses. Reserved for Google's use.
	Licenses []string `json:"licenses,omitempty"`
	// LocationHint: An opaque location hint used to place the disk close to other
	// resources. This field is for use by internal tools that use the public API.
	LocationHint string `json:"locationHint,omitempty"`
	// Locked: [Output Only] The field indicates if the disk is created from a
	// locked source image. Attachment of a disk created from a locked source image
	// will cause the following operations to become irreversibly prohibited: - R/W
	// or R/O disk attachment to any other instance - Disk detachment. And the disk
	// can only be deleted when the instance is deleted - Creation of images or
	// snapshots - Disk cloning Furthermore, the instance with at least one disk
	// with locked flag set to true will be prohibited from performing the
	// operations below: - Further attachment of secondary disks. - Detachment of
	// any disks - Create machine images - Create instance template - Delete the
	// instance with --keep-disk parameter set to true for locked disks - Attach a
	// locked disk with --auto-delete parameter set to false
	Locked bool `json:"locked,omitempty"`
	// MultiWriter: Indicates whether or not the disk can be read/write attached to
	// more than one instance.
	MultiWriter bool `json:"multiWriter,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Options: Internal use only.
	Options string `json:"options,omitempty"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted as part of resource payload.
	Params *DiskParams `json:"params,omitempty"`
	// PhysicalBlockSizeBytes: Physical block size of the persistent disk, in
	// bytes. If not present in a request, a default value is used. The currently
	// supported size is 4096, other sizes may be added in the future. If an
	// unsupported value is requested, the error message will list the supported
	// values for the caller's project.
	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
	// ProvisionedIops: Indicates how many IOPS to provision for the disk. This
	// sets the number of I/O operations per second that the disk can handle.
	// Values must be between 10,000 and 120,000. For more details, see the Extreme
	// persistent disk documentation.
	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
	// ProvisionedThroughput: Indicates how much throughput to provision for the
	// disk. This sets the number of throughput mb per second that the disk can
	// handle. Values must be greater than or equal to 1.
	ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"`
	// Region: [Output Only] URL of the region where the disk resides. Only
	// applicable for regional resources. You must specify this field as part of
	// the HTTP request URL. It is not settable as a field in the request body.
	Region string `json:"region,omitempty"`
	// ReplicaZones: URLs of the zones where the disk should be replicated to. Only
	// applicable for regional resources.
	ReplicaZones []string `json:"replicaZones,omitempty"`
	// ResourcePolicies: Resource policies applied to this disk for automatic
	// snapshot creations.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ResourceStatus: [Output Only] Status information for the disk resource.
	ResourceStatus *DiskResourceStatus `json:"resourceStatus,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
	// resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SizeGb: Size, in GB, of the persistent disk. You can specify this field when
	// creating a persistent disk using the sourceImage, sourceSnapshot, or
	// sourceDisk parameter, or specify it alone to create an empty persistent
	// disk. If you specify this field along with a source, the value of sizeGb
	// must not be less than the size of the source. Acceptable values are greater
	// than 0.
	SizeGb int64 `json:"sizeGb,omitempty,string"`
	// SourceConsistencyGroupPolicy: [Output Only] URL of the
	// DiskConsistencyGroupPolicy for a secondary disk that was created using a
	// consistency group.
	SourceConsistencyGroupPolicy string `json:"sourceConsistencyGroupPolicy,omitempty"`
	// SourceConsistencyGroupPolicyId: [Output Only] ID of the
	// DiskConsistencyGroupPolicy for a secondary disk that was created using a
	// consistency group.
	SourceConsistencyGroupPolicyId string `json:"sourceConsistencyGroupPolicyId,omitempty"`
	// SourceDisk: The source disk used to create this disk. You can provide this
	// as a partial or full URL to the resource. For example, the following are
	// valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /disks/disk - projects/project/zones/zone/disks/disk -
	// projects/project/regions/region/disks/disk - zones/zone/disks/disk -
	// regions/region/disks/disk
	SourceDisk string `json:"sourceDisk,omitempty"`
	// SourceDiskId: [Output Only] The unique ID of the disk used to create this
	// disk. This value identifies the exact disk that was used to create this
	// persistent disk. For example, if you created the persistent disk from a disk
	// that was later deleted and recreated under the same name, the source disk ID
	// would identify the exact version of the disk that was used.
	SourceDiskId string `json:"sourceDiskId,omitempty"`
	// SourceImage: The source image used to create this disk. If the source image
	// is deleted, this field will not be set. To create a disk with one of the
	// public operating system images, specify the image by its family name. For
	// example, specify family/debian-9 to use the latest Debian 9 image:
	// projects/debian-cloud/global/images/family/debian-9 Alternatively, use a
	// specific version of a public operating system image:
	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a
	// disk with a custom image that you created, specify the image name in the
	// following format: global/images/my-custom-image You can also specify a
	// custom image by its image family, which returns the latest version of the
	// image in that family. Replace the image name with family/family-name:
	// global/images/family/my-image-family
	SourceImage string `json:"sourceImage,omitempty"`
	// SourceImageEncryptionKey: The customer-supplied encryption key of the source
	// image. Required if the source image is protected by a customer-supplied
	// encryption key.
	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
	// SourceImageId: [Output Only] The ID value of the image used to create this
	// disk. This value identifies the exact image that was used to create this
	// persistent disk. For example, if you created the persistent disk from an
	// image that was later deleted and recreated under the same name, the source
	// image ID would identify the exact version of the image that was used.
	SourceImageId string `json:"sourceImageId,omitempty"`
	// SourceInstantSnapshot: The source instant snapshot used to create this disk.
	// You can provide this as a partial or full URL to the resource. For example,
	// the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /instantSnapshots/instantSnapshot -
	// projects/project/zones/zone/instantSnapshots/instantSnapshot -
	// zones/zone/instantSnapshots/instantSnapshot
	SourceInstantSnapshot string `json:"sourceInstantSnapshot,omitempty"`
	// SourceInstantSnapshotId: [Output Only] The unique ID of the instant snapshot
	// used to create this disk. This value identifies the exact instant snapshot
	// that was used to create this persistent disk. For example, if you created
	// the persistent disk from an instant snapshot that was later deleted and
	// recreated under the same name, the source instant snapshot ID would identify
	// the exact version of the instant snapshot that was used.
	SourceInstantSnapshotId string `json:"sourceInstantSnapshotId,omitempty"`
	// SourceSnapshot: The source snapshot used to create this disk. You can
	// provide this as a partial or full URL to the resource. For example, the
	// following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project
	// /global/snapshots/snapshot - projects/project/global/snapshots/snapshot -
	// global/snapshots/snapshot
	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of the
	// source snapshot. Required if the source snapshot is protected by a
	// customer-supplied encryption key.
	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to create
	// this disk. This value identifies the exact snapshot that was used to create
	// this persistent disk. For example, if you created the persistent disk from a
	// snapshot that was later deleted and recreated under the same name, the
	// source snapshot ID would identify the exact version of the snapshot that was
	// used.
	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
	// SourceStorageObject: The full Google Cloud Storage URI where the disk image
	// is stored. This file must be a gzip-compressed tarball whose name ends in
	// .tar.gz or virtual machine disk whose name ends in vmdk. Valid URIs may
	// start with gs:// or https://storage.googleapis.com/. This flag is not
	// optimized for creating multiple disks from a source storage object. To
	// create many disks from a source storage object, use gcloud compute images
	// import instead.
	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
	// Status: [Output Only] The status of disk creation. - CREATING: Disk is
	// provisioning. - RESTORING: Source data is being copied into the disk. -
	// FAILED: Disk creation failed. - READY: Disk is ready for use. - DELETING:
	// Disk is deleting.
	//
	// Possible values:
	//   "CREATING" - Disk is provisioning
	//   "DELETING" - Disk is deleting.
	//   "FAILED" - Disk creation failed.
	//   "READY" - Disk is ready for use.
	//   "RESTORING" - Source data is being copied into the disk.
	//   "UNAVAILABLE" - Disk is currently unavailable and cannot be accessed,
	// attached or detached.
	Status string `json:"status,omitempty"`
	// StoragePool: The storage pool in which the new disk is created. You can
	// provide this as a partial or full URL to the resource. For example, the
	// following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /storagePools/storagePool -
	// projects/project/zones/zone/storagePools/storagePool -
	// zones/zone/storagePools/storagePool
	StoragePool string `json:"storagePool,omitempty"`
	// StorageType: [Deprecated] Storage type of the persistent disk.
	//
	// Possible values:
	//   "HDD"
	//   "SSD"
	StorageType string `json:"storageType,omitempty"`
	// Type: URL of the disk type resource describing which disk type to use to
	// create the disk. Provide this when creating the disk. For example:
	// projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk types.
	Type string `json:"type,omitempty"`
	// UserLicenses: A list of publicly visible user-licenses. Unlike regular
	// licenses, user provided licenses can be modified after the disk is created.
	// This includes a list of URLs to the license resource. For example, to
	// provide a debian license:
	// https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-9-stretch
	UserLicenses []string `json:"userLicenses,omitempty"`
	// Users: [Output Only] Links to the users of the disk (attached instances) in
	// form: projects/project/zones/zone/instances/instance
	Users []string `json:"users,omitempty"`
	// Zone: [Output Only] URL of the zone where the disk resides. You must specify
	// this field as part of the HTTP request URL. It is not settable as a field in
	// the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AccessMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessMode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Disk) MarshalJSON() ([]byte, error) {
	type NoMethod Disk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of DisksScopedList resources.
	Items map[string]DisksScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#diskAggregatedList for
	// aggregated lists of persistent disks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod DiskAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskAggregatedListWarning: [Output Only] Informational warning message.
type DiskAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod DiskAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod DiskAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskAsyncReplication struct {
	// ConsistencyGroupPolicy: [Output Only] URL of the DiskConsistencyGroupPolicy
	// if replication was started on the disk as a member of a group.
	ConsistencyGroupPolicy string `json:"consistencyGroupPolicy,omitempty"`
	// ConsistencyGroupPolicyId: [Output Only] ID of the DiskConsistencyGroupPolicy
	// if replication was started on the disk as a member of a group.
	ConsistencyGroupPolicyId string `json:"consistencyGroupPolicyId,omitempty"`
	// Disk: The other disk asynchronously replicated to or from the current disk.
	// You can provide this as a partial or full URL to the resource. For example,
	// the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk
	Disk string `json:"disk,omitempty"`
	// DiskId: [Output Only] The unique ID of the other disk asynchronously
	// replicated to or from the current disk. This value identifies the exact disk
	// that was used to create this replication. For example, if you started
	// replicating the persistent disk from a disk that was later deleted and
	// recreated under the same name, the disk ID would identify the exact version
	// of the disk that was used.
	DiskId string `json:"diskId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsistencyGroupPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsistencyGroupPolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskAsyncReplication) MarshalJSON() ([]byte, error) {
	type NoMethod DiskAsyncReplication
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskAsyncReplicationList struct {
	AsyncReplicationDisk *DiskAsyncReplication `json:"asyncReplicationDisk,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AsyncReplicationDisk") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AsyncReplicationDisk") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskAsyncReplicationList) MarshalJSON() ([]byte, error) {
	type NoMethod DiskAsyncReplicationList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskInstantiationConfig: A specification of the desired way to instantiate a
// disk in the instance template when its created from a source instance.
type DiskInstantiationConfig struct {
	// AutoDelete: Specifies whether the disk will be auto-deleted when the
	// instance is deleted (but not when the disk is detached from the instance).
	AutoDelete bool `json:"autoDelete,omitempty"`
	// CustomImage: The custom source image to be used to restore this disk when
	// instantiating this instance template.
	CustomImage string `json:"customImage,omitempty"`
	// DeviceName: Specifies the device name of the disk to which the
	// configurations apply to.
	DeviceName string `json:"deviceName,omitempty"`
	// InstantiateFrom: Specifies whether to include the disk and what image to
	// use. Possible values are: - source-image: to use the same image that was
	// used to create the source instance's corresponding disk. Applicable to the
	// boot disk and additional read-write disks. - source-image-family: to use the
	// same image family that was used to create the source instance's
	// corresponding disk. Applicable to the boot disk and additional read-write
	// disks. - custom-image: to use a user-provided image url for disk creation.
	// Applicable to the boot disk and additional read-write disks. -
	// attach-read-only: to attach a read-only disk. Applicable to read-only disks.
	// - do-not-include: to exclude a disk from the template. Applicable to
	// additional read-write disks, local SSDs, and read-only disks.
	//
	// Possible values:
	//   "ATTACH_READ_ONLY" - Attach the existing disk in read-only mode. The
	// request will fail if the disk was attached in read-write mode on the source
	// instance. Applicable to: read-only disks.
	//   "BLANK" - Create a blank disk. The disk will be created unformatted.
	// Applicable to: additional read-write disks, local SSDs.
	//   "CUSTOM_IMAGE" - Use the custom image specified in the custom_image field.
	// Applicable to: boot disk, additional read-write disks.
	//   "DEFAULT" - Use the default instantiation option for the corresponding
	// type of disk. For boot disk and any other R/W disks, new custom images will
	// be created from each disk. For read-only disks, they will be attached in
	// read-only mode. Local SSD disks will be created as blank volumes.
	//   "DO_NOT_INCLUDE" - Do not include the disk in the instance template.
	// Applicable to: additional read-write disks, local SSDs, read-only disks.
	//   "SOURCE_IMAGE" - Use the same source image used for creation of the source
	// instance's corresponding disk. The request will fail if the source VM's disk
	// was created from a snapshot. Applicable to: boot disk, additional read-write
	// disks.
	//   "SOURCE_IMAGE_FAMILY" - Use the same source image family used for creation
	// of the source instance's corresponding disk. The request will fail if the
	// source image of the source disk does not belong to any image family.
	// Applicable to: boot disk, additional read-write disks.
	InstantiateFrom string `json:"instantiateFrom,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDelete") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
	type NoMethod DiskInstantiationConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskList: A list of Disk resources.
type DiskList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Disk resources.
	Items []*Disk `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#diskList for lists of
	// disks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *DiskListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskList) MarshalJSON() ([]byte, error) {
	type NoMethod DiskList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskListWarning: [Output Only] Informational warning message.
type DiskListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*DiskListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod DiskListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod DiskListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskMoveRequest struct {
	// DestinationZone: The URL of the destination zone to move the disk. This can
	// be a full or partial URL. For example, the following are all valid URLs to a
	// zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone -
	// projects/project/zones/zone - zones/zone
	DestinationZone string `json:"destinationZone,omitempty"`
	// TargetDisk: The URL of the target disk to move. This can be a full or
	// partial URL. For example, the following are all valid URLs to a disk: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk
	TargetDisk string `json:"targetDisk,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationZone") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskMoveRequest) MarshalJSON() ([]byte, error) {
	type NoMethod DiskMoveRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskParams: Additional disk params.
type DiskParams struct {
	// ResourceManagerTags: Resource manager tags to be bound to the disk. Tag keys
	// and values have the same definition as resource manager tags. Keys must be
	// in the format `tagKeys/{tag_key_id}`, and values are in the format
	// `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.
	ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceManagerTags") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskParams) MarshalJSON() ([]byte, error) {
	type NoMethod DiskParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskResourceStatus struct {
	AsyncPrimaryDisk *DiskResourceStatusAsyncReplicationStatus `json:"asyncPrimaryDisk,omitempty"`
	// AsyncSecondaryDisks: Key: disk, value: AsyncReplicationStatus message
	AsyncSecondaryDisks map[string]DiskResourceStatusAsyncReplicationStatus `json:"asyncSecondaryDisks,omitempty"`
	// UsedBytes: [Output Only] Space used by data stored in the disk (in bytes).
	// Note that this field is set only when the disk is in a storage pool.
	UsedBytes int64 `json:"usedBytes,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AsyncPrimaryDisk") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AsyncPrimaryDisk") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod DiskResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskResourceStatusAsyncReplicationStatus struct {
	// Possible values:
	//   "ACTIVE" - Replication is active.
	//   "CREATED" - Secondary disk is created and is waiting for replication to
	// start.
	//   "STARTING" - Replication is starting.
	//   "STATE_UNSPECIFIED"
	//   "STOPPED" - Replication is stopped.
	//   "STOPPING" - Replication is stopping.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "State") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "State") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskResourceStatusAsyncReplicationStatus) MarshalJSON() ([]byte, error) {
	type NoMethod DiskResourceStatusAsyncReplicationStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskSettings struct {
	// AccessLocation: Policy of which locations are allowed to create regional
	// snapshots.
	AccessLocation *DiskSettingsAccessLocation `json:"accessLocation,omitempty"`
	// DefaultResourcePolicies: An optional parameter for storing the default
	// resource policies that will be used for the Disks created in the given
	// scope. The Key is a string type, provided by customers to uniquely identify
	// the default Resource Policy entry. The Value is a Default
	// ResourcePolicyDetails Object used to represent the detailed information of
	// the Resource Policy entry.
	DefaultResourcePolicies map[string]DiskSettingsResourcePolicyDetails `json:"defaultResourcePolicies,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AccessLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessLocation") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskSettings) MarshalJSON() ([]byte, error) {
	type NoMethod DiskSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskSettingsAccessLocation: AccessLocation is only used for regional
// snapshot. It contains which regions are allowed to create a regional
// snapshot from disks located in the given region/zone. It includes key-value
// pairs designed to store the following structure. The keys should match their
// corresponding values, which must be provided: access_location: { locations {
// us-central1 { region: "us-central1" }, asia-west2 { region: "asia-west2" } }
// }
type DiskSettingsAccessLocation struct {
	// Locations: List of regions that can create a regional snapshot from the
	// current region
	Locations map[string]DiskSettingsAccessLocationAccessLocationPreference `json:"locations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Locations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskSettingsAccessLocation) MarshalJSON() ([]byte, error) {
	type NoMethod DiskSettingsAccessLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskSettingsAccessLocationAccessLocationPreference: A structure for
// specifying an allowed target region to create snapshot.
type DiskSettingsAccessLocationAccessLocationPreference struct {
	// Region: Accessible region name
	Region string `json:"region,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Region") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskSettingsAccessLocationAccessLocationPreference) MarshalJSON() ([]byte, error) {
	type NoMethod DiskSettingsAccessLocationAccessLocationPreference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskSettingsResourcePolicyDetails: This is the object for storing the detail
// information about the Resource Policy that will be set as default ones for
// the Disks that is using the DiskSettings. It contains: - one target Resource
// Policy referenced by its Fully-Qualified URL, - [output only] Disk Types
// that will be excluded from using this Resource Policy, - Other filtering
// support (e.g. Label filtering) for Default Resource Policy can be added here
// as well
type DiskSettingsResourcePolicyDetails struct {
	// ExcludedDiskTypes: [Output Only] A list of Disk Types that will be excluded
	// from applying the Resource Policy referenced here. If absent, Disks created
	// in any DiskType can use the referenced default Resource Policy.
	ExcludedDiskTypes []string `json:"excludedDiskTypes,omitempty"`
	// ResourcePolicy: The target Resource Policies identified by their
	// Fully-Qualified URL.
	ResourcePolicy string `json:"resourcePolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExcludedDiskTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExcludedDiskTypes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskSettingsResourcePolicyDetails) MarshalJSON() ([]byte, error) {
	type NoMethod DiskSettingsResourcePolicyDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskType: Represents a Disk Type resource. Google Compute Engine has two
// Disk Type resources: * Regional
// (/compute/docs/reference/rest/alpha/regionDiskTypes) * Zonal
// (/compute/docs/reference/rest/alpha/diskTypes) You can choose from a variety
// of disk types based on your needs. For more information, read Storage
// options. The diskTypes resource represents disk types for a zonal persistent
// disk. For more information, read Zonal persistent disks. The regionDiskTypes
// resource represents disk types for a regional persistent disk. For more
// information, read Regional persistent disks.
type DiskType struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in GB.
	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
	// Deprecated -- [Output Only] The deprecation status associated with this disk
	// type.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: [Output Only] An optional description of this resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#diskType for disk
	// types.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] URL of the region where the disk type resides. Only
	// applicable for regional resources. You must specify this field as part of
	// the HTTP request URL. It is not settable as a field in the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ValidDiskSize: [Output Only] An optional textual description of the valid
	// disk size, such as "10GB-10TB".
	ValidDiskSize string `json:"validDiskSize,omitempty"`
	// Zone: [Output Only] URL of the zone where the disk type resides. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskType) MarshalJSON() ([]byte, error) {
	type NoMethod DiskType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskTypeAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of DiskTypesScopedList resources.
	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#diskTypeAggregatedList.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypeAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskTypeAggregatedListWarning: [Output Only] Informational warning message.
type DiskTypeAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypeAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskTypeAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypeAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskTypeList: Contains a list of disk types.
type DiskTypeList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of DiskType resources.
	Items []*DiskType `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for disk
	// types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *DiskTypeListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypeList) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypeList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskTypeListWarning: [Output Only] Informational warning message.
type DiskTypeListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*DiskTypeListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypeListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypeListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskTypeListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypeListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskTypesScopedList struct {
	// DiskTypes: [Output Only] A list of disk types contained in this scope.
	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of disk
	// types when the list is empty.
	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DiskTypesScopedListWarning: [Output Only] Informational warning which
// replaces the list of disk types when the list is empty.
type DiskTypesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DiskTypesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod DiskTypesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DisksAddResourcePoliciesRequest struct {
	// ResourcePolicies: Full or relative path to the resource policy to be added
	// to this disk. You can only specify one resource policy.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod DisksAddResourcePoliciesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DisksRemoveResourcePoliciesRequest struct {
	// ResourcePolicies: Resource policies to be removed from this disk.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod DisksRemoveResourcePoliciesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DisksResizeRequest struct {
	// SizeGb: The new size of the persistent disk, which is specified in GB.
	SizeGb int64 `json:"sizeGb,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "SizeGb") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SizeGb") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksResizeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod DisksResizeRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DisksScopedList struct {
	// Disks: [Output Only] A list of disks contained in this scope.
	Disks []*Disk `json:"disks,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// disks when the list is empty.
	Warning *DisksScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disks") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod DisksScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DisksScopedListWarning: [Output Only] Informational warning which replaces
// the list of disks when the list is empty.
type DisksScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*DisksScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod DisksScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DisksScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod DisksScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DisksStartAsyncReplicationRequest struct {
	// AsyncSecondaryDisk: The secondary disk to start asynchronous replication to.
	// You can provide this as a partial or full URL to the resource. For example,
	// the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /disks/disk - projects/project/zones/zone/disks/disk -
	// projects/project/regions/region/disks/disk - zones/zone/disks/disk -
	// regions/region/disks/disk
	AsyncSecondaryDisk string `json:"asyncSecondaryDisk,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AsyncSecondaryDisk") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AsyncSecondaryDisk") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksStartAsyncReplicationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod DisksStartAsyncReplicationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DisksStopGroupAsyncReplicationResource: A transient resource used in
// compute.disks.stopGroupAsyncReplication and
// compute.regionDisks.stopGroupAsyncReplication. It is only used to process
// requests and is not persisted.
type DisksStopGroupAsyncReplicationResource struct {
	// ResourcePolicy: The URL of the DiskConsistencyGroupPolicy for the group of
	// disks to stop. This may be a full or partial URL, such as: -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /resourcePolicies/resourcePolicy -
	// projects/project/regions/region/resourcePolicies/resourcePolicy -
	// regions/region/resourcePolicies/resourcePolicy
	ResourcePolicy string `json:"resourcePolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisksStopGroupAsyncReplicationResource) MarshalJSON() ([]byte, error) {
	type NoMethod DisksStopGroupAsyncReplicationResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DisplayDevice: A set of Display Device options
type DisplayDevice struct {
	// EnableDisplay: Defines whether the instance has Display enabled.
	EnableDisplay bool `json:"enableDisplay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableDisplay") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DisplayDevice) MarshalJSON() ([]byte, error) {
	type NoMethod DisplayDevice
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DistributionPolicy struct {
	// TargetShape: The distribution shape to which the group converges either
	// proactively or on resize events (depending on the value set in
	// updatePolicy.instanceRedistributionType).
	//
	// Possible values:
	//   "ANY" - The group picks zones for creating VM instances to fulfill the
	// requested number of VMs within present resource constraints and to maximize
	// utilization of unused zonal reservations. Recommended for batch workloads
	// that do not require high availability.
	//   "ANY_SINGLE_ZONE" - The group creates all VM instances within a single
	// zone. The zone is selected based on the present resource constraints and to
	// maximize utilization of unused zonal reservations. Recommended for batch
	// workloads with heavy interprocess communication.
	//   "BALANCED" - The group prioritizes acquisition of resources, scheduling
	// VMs in zones where resources are available while distributing VMs as evenly
	// as possible across selected zones to minimize the impact of zonal failure.
	// Recommended for highly available serving workloads.
	//   "EVEN" - The group schedules VM instance creation and deletion to achieve
	// and maintain an even number of managed instances across the selected zones.
	// The distribution is even when the number of managed instances does not
	// differ by more than 1 between any two zones. Recommended for highly
	// available serving workloads.
	TargetShape string `json:"targetShape,omitempty"`
	// Zones: Zones where the regional managed instance group will create and
	// manage its instances.
	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetShape") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetShape") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DistributionPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod DistributionPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type DistributionPolicyZoneConfiguration struct {
	// Zone: The URL of the zone. The zone must exist in the region where the
	// managed instance group is located.
	Zone string `json:"zone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Zone") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Zone") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
	type NoMethod DistributionPolicyZoneConfiguration
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Duration: A Duration represents a fixed-length span of time represented as a
// count of seconds and fractions of seconds at nanosecond resolution. It is
// independent of any calendar and concepts like "day" or "month". Range is
// approximately 10,000 years.
type Duration struct {
	// Nanos: Span of time that's a fraction of a second at nanosecond resolution.
	// Durations less than one second are represented with a 0 `seconds` field and
	// a positive `nanos` field. Must be from 0 to 999,999,999 inclusive.
	Nanos int64 `json:"nanos,omitempty"`
	// Seconds: Span of time at a resolution of a second. Must be from 0 to
	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min
	// * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
	Seconds int64 `json:"seconds,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Nanos") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Nanos") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Duration) MarshalJSON() ([]byte, error) {
	type NoMethod Duration
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ErrorInfo: Describes the cause of the error with structured details. Example
// of an error when contacting the "pubsub.googleapis.com" API when it is not
// enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": {
// "resource": "projects/123", "service": "pubsub.googleapis.com" } } This
// response indicates that the pubsub.googleapis.com API is not enabled.
// Example of an error that is returned when attempting to create a Spanner
// instance in a region that is out of stock: { "reason": "STOCKOUT" "domain":
// "spanner.googleapis.com", "metadata": { "availableRegions":
// "us-central1,us-east2" } }
type ErrorInfo struct {
	// Domain: The logical grouping to which the "reason" belongs. The error domain
	// is typically the registered service name of the tool or product that
	// generates the error. Example: "pubsub.googleapis.com". If the error is
	// generated by some common infrastructure, the error domain must be a globally
	// unique value that identifies the infrastructure. For Google API
	// infrastructure, the error domain is "googleapis.com".
	Domain string `json:"domain,omitempty"`
	// Metadatas: Additional structured details about this error. Keys must match
	// /a-z+/ but should ideally be lowerCamelCase. Also they must be limited to 64
	// characters in length. When identifying the current value of an exceeded
	// limit, the units should be contained in the key, not the value. For example,
	// rather than {"instanceLimit": "100/request"}, should be returned as,
	// {"instanceLimitPerRequest": "100"}, if the client exceeds the number of
	// instances that can be created in a single (batch) request.
	Metadatas map[string]string `json:"metadatas,omitempty"`
	// Reason: The reason of the error. This is a constant value that identifies
	// the proximate cause of the error. Error reasons are unique within a
	// particular domain of errors. This should be at most 63 characters and match
	// a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.
	Reason string `json:"reason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Domain") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Domain") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ErrorInfo) MarshalJSON() ([]byte, error) {
	type NoMethod ErrorInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ExchangedPeeringRoute struct {
	// DestRange: The destination range of the route.
	DestRange string `json:"destRange,omitempty"`
	// Imported: True if the peering route has been imported from a peer. The
	// actual import happens if the field networkPeering.importCustomRoutes is true
	// for this network, and networkPeering.exportCustomRoutes is true for the peer
	// network, and the import does not result in a route conflict.
	Imported bool `json:"imported,omitempty"`
	// NextHopRegion: The region of peering route next hop, only applies to dynamic
	// routes.
	NextHopRegion string `json:"nextHopRegion,omitempty"`
	// Priority: The priority of the peering route.
	Priority int64 `json:"priority,omitempty"`
	// Type: The type of the peering route.
	//
	// Possible values:
	//   "DYNAMIC_PEERING_ROUTE" - For routes exported from local network.
	//   "STATIC_PEERING_ROUTE" - The peering route.
	//   "SUBNET_PEERING_ROUTE" - The peering route corresponding to subnetwork
	// range.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
	type NoMethod ExchangedPeeringRoute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ExchangedPeeringRoutesList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of ExchangedPeeringRoute resources.
	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#exchangedPeeringRoutesList for exchanged peering routes lists.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
	type NoMethod ExchangedPeeringRoutesList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ExchangedPeeringRoutesListWarning: [Output Only] Informational warning
// message.
type ExchangedPeeringRoutesListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ExchangedPeeringRoutesListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ExchangedPeeringRoutesListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ExchangedPeeringRoutesListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Expr: Represents a textual expression in the Common Expression Language
// (CEL) syntax. CEL is a C-like expression language. The syntax and semantics
// of CEL are documented at https://github.com/google/cel-spec. Example
// (Comparison): title: "Summary size limit" description: "Determines if a
// summary is less than 100 chars" expression: "document.summary.size() < 100"
// Example (Equality): title: "Requestor is owner" description: "Determines if
// requestor is the document owner" expression: "document.owner ==
// request.auth.claims.email" Example (Logic): title: "Public documents"
// description: "Determine whether the document should be publicly visible"
// expression: "document.type != 'private' && document.type != 'internal'"
// Example (Data Manipulation): title: "Notification string" description:
// "Create a notification string with a timestamp." expression: "'New message
// received at ' + string(document.create_time)" The exact variables and
// functions that may be referenced within an expression are determined by the
// service that evaluates it. See the service documentation for additional
// information.
type Expr struct {
	// Description: Optional. Description of the expression. This is a longer text
	// which describes the expression, e.g. when hovered over it in a UI.
	Description string `json:"description,omitempty"`
	// Expression: Textual representation of an expression in Common Expression
	// Language syntax.
	Expression string `json:"expression,omitempty"`
	// Location: Optional. String indicating the location of the expression for
	// error reporting, e.g. a file name and a position in the file.
	Location string `json:"location,omitempty"`
	// Title: Optional. Title for the expression, i.e. a short string describing
	// its purpose. This can be used e.g. in UIs which allow to enter the
	// expression.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Expr) MarshalJSON() ([]byte, error) {
	type NoMethod Expr
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ExternalVpnGateway: Represents an external VPN gateway. External VPN gateway
// is the on-premises VPN gateway(s) or another cloud provider's VPN gateway
// that connects to your Google Cloud VPN gateway. To create a highly available
// VPN from Google Cloud Platform to your VPN gateway or another cloud
// provider's VPN gateway, you must create a external VPN gateway resource with
// information about the other gateway. For more information about using
// external VPN gateways, see Creating an HA VPN gateway and tunnel pair to a
// peer VPN.
type ExternalVpnGateway struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id *uint64 `json:"id,omitempty,string"`
	// Interfaces: A list of interfaces for this external VPN gateway. If your
	// peer-side gateway is an on-premises gateway and non-AWS cloud providers'
	// gateway, at most two interfaces can be provided for an external VPN gateway.
	// If your peer side is an AWS virtual private gateway, four interfaces should
	// be provided for an external VPN gateway.
	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#externalVpnGateway
	// for externalVpnGateways.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// ExternalVpnGateway, which is essentially a hash of the labels set used for
	// optimistic locking. The fingerprint is initially generated by Compute Engine
	// and changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve an ExternalVpnGateway.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// RedundancyType: Indicates the user-supplied redundancy type of this external
	// VPN gateway.
	//
	// Possible values:
	//   "FOUR_IPS_REDUNDANCY" - The external VPN gateway has four public IP
	// addresses; at the time of writing this API, the AWS virtual private gateway
	// is an example which has four public IP addresses for high availability
	// connections; there should be two VPN connections in the AWS virtual private
	// gateway , each AWS VPN connection has two public IP addresses; please make
	// sure to put two public IP addresses from one AWS VPN connection into
	// interfaces 0 and 1 of this external VPN gateway, and put the other two
	// public IP addresses from another AWS VPN connection into interfaces 2 and 3
	// of this external VPN gateway. When displaying highly available configuration
	// status for the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN
	// gateway, Google will always detect whether interfaces 0 and 1 are connected
	// on one interface of HA Cloud VPN gateway, and detect whether interfaces 2
	// and 3 are connected to another interface of the HA Cloud VPN gateway.
	//   "SINGLE_IP_INTERNALLY_REDUNDANT" - The external VPN gateway has only one
	// public IP address which internally provide redundancy or failover.
	//   "TWO_IPS_REDUNDANCY" - The external VPN gateway has two public IP
	// addresses which are redundant with each other, the following two types of
	// setup on your on-premises side would have this type of redundancy: (1) Two
	// separate on-premises gateways, each with one public IP address, the two
	// on-premises gateways are redundant with each other. (2) A single on-premise
	// gateway with two public IP addresses that are redundant with eatch other.
	RedundancyType string `json:"redundancyType,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExternalVpnGateway) MarshalJSON() ([]byte, error) {
	type NoMethod ExternalVpnGateway
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ExternalVpnGatewayInterface: The interface for the external VPN gateway.
type ExternalVpnGatewayInterface struct {
	// Id: The numeric ID of this interface. The allowed input values for this id
	// for different redundancy types of external VPN gateway: -
	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 -
	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
	Id int64 `json:"id,omitempty"`
	// IpAddress: IP address of the interface in the external VPN gateway. Only
	// IPv4 is supported. This IP address can be either from your on-premise
	// gateway or another Cloud provider's VPN gateway, it cannot be an IP address
	// from Google Compute Engine.
	IpAddress string `json:"ipAddress,omitempty"`
	// Ipv6Address: IPv6 address of the interface in the external VPN gateway. This
	// IPv6 address can be either from your on-premise gateway or another Cloud
	// provider's VPN gateway, it cannot be an IP address from Google Compute
	// Engine. Must specify an IPv6 address (not IPV4-mapped) using any format
	// described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is
	// RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).
	Ipv6Address string `json:"ipv6Address,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
	type NoMethod ExternalVpnGatewayInterface
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ExternalVpnGatewayList: Response to the list request, and contains a list of
// externalVpnGateways.
type ExternalVpnGatewayList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of ExternalVpnGateway resources.
	Items []*ExternalVpnGateway `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#externalVpnGatewayList
	// for lists of externalVpnGateways.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
	type NoMethod ExternalVpnGatewayList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ExternalVpnGatewayListWarning: [Output Only] Informational warning message.
type ExternalVpnGatewayListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ExternalVpnGatewayListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ExternalVpnGatewayListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ExternalVpnGatewayListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FileContentBuffer struct {
	// Content: The raw content in the secure keys file.
	Content string `json:"content,omitempty"`
	// FileType: The file type of source file.
	//
	// Possible values:
	//   "BIN"
	//   "UNDEFINED"
	//   "X509"
	FileType string `json:"fileType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FileContentBuffer) MarshalJSON() ([]byte, error) {
	type NoMethod FileContentBuffer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Firewall: Represents a Firewall Rule resource. Firewall rules allow or deny
// ingress traffic to, and egress traffic from your instances. For more
// information, read Firewall rules.
type Firewall struct {
	// Allowed: The list of ALLOW rules specified by this firewall. Each rule
	// specifies a protocol and port-range tuple that describes a permitted
	// connection.
	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Denied: The list of DENY rules specified by this firewall. Each rule
	// specifies a protocol and port-range tuple that describes a denied
	// connection.
	Denied []*FirewallDenied `json:"denied,omitempty"`
	// Description: An optional description of this resource. Provide this field
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DestinationRanges: If destination ranges are specified, the firewall rule
	// applies only to traffic that has destination IP address in these ranges.
	// These ranges must be expressed in CIDR format. Both IPv4 and IPv6 are
	// supported.
	DestinationRanges []string `json:"destinationRanges,omitempty"`
	// Direction: Direction of traffic to which this firewall applies, either
	// `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you
	// cannot specify the sourceTags fields.
	//
	// Possible values:
	//   "EGRESS" - Indicates that firewall should apply to outgoing traffic.
	//   "INGRESS" - Indicates that firewall should apply to incoming traffic.
	Direction string `json:"direction,omitempty"`
	// Disabled: Denotes whether the firewall rule is disabled. When set to true,
	// the firewall rule is not enforced and the network behaves as if it did not
	// exist. If this is unspecified, the firewall rule will be enabled.
	Disabled bool `json:"disabled,omitempty"`
	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
	// denotes whether to enable logging for a particular firewall rule. If logging
	// is enabled, logs will be exported t Cloud Logging.
	EnableLogging bool `json:"enableLogging,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#firewall for
	// firewall rules.
	Kind string `json:"kind,omitempty"`
	// LogConfig: This field denotes the logging options for a particular firewall
	// rule. If logging is enabled, logs will be exported to Cloud Logging.
	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a
	// lowercase letter, and all following characters (except for the last
	// character) must be a dash, lowercase letter, or digit. The last character
	// must be a lowercase letter or digit.
	Name string `json:"name,omitempty"`
	// Network: URL of the network resource for this firewall rule. If not
	// specified when creating a firewall rule, the default network is used:
	// global/networks/default If you choose to specify this field, you can specify
	// the network as a full or partial URL. For example, the following are all
	// valid URLs: -
	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
	// - projects/myproject/global/networks/my-network - global/networks/default
	Network string `json:"network,omitempty"`
	// Priority: Priority for this rule. This is an integer between `0` and
	// `65535`, both inclusive. The default value is `1000`. Relative priorities
	// determine which rule takes effect if multiple rules apply. Lower values
	// indicate higher priority. For example, a rule with priority `0` has higher
	// precedence than a rule with priority `1`. DENY rules take precedence over
	// ALLOW rules if they have equal priority. Note that VPC networks have implied
	// rules with a priority of `65535`. To avoid conflicts with the implied rules,
	// use a priority number less than `65535`.
	Priority int64 `json:"priority,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SourceRanges: If source ranges are specified, the firewall rule applies only
	// to traffic that has a source IP address in these ranges. These ranges must
	// be expressed in CIDR format. One or both of sourceRanges and sourceTags may
	// be set. If both fields are set, the rule applies to traffic that has a
	// source IP address within sourceRanges OR a source IP from a resource with a
	// matching tag listed in the sourceTags field. The connection does not need to
	// match both fields for the rule to apply. Both IPv4 and IPv6 are supported.
	SourceRanges []string `json:"sourceRanges,omitempty"`
	// SourceServiceAccounts: If source service accounts are specified, the
	// firewall rules apply only to traffic originating from an instance with a
	// service account in this list. Source service accounts cannot be used to
	// control traffic to an instance's external IP address because service
	// accounts are associated with an instance, not an IP address. sourceRanges
	// can be set at the same time as sourceServiceAccounts. If both are set, the
	// firewall applies to traffic that has a source IP address within the
	// sourceRanges OR a source IP that belongs to an instance with service account
	// listed in sourceServiceAccount. The connection does not need to match both
	// fields for the firewall to apply. sourceServiceAccounts cannot be used at
	// the same time as sourceTags or targetTags.
	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
	// SourceTags: If source tags are specified, the firewall rule applies only to
	// traffic with source IPs that match the primary network interfaces of VM
	// instances that have the tag and are in the same VPC network. Source tags
	// cannot be used to control traffic to an instance's external IP address, it
	// only applies to traffic between instances in the same virtual network.
	// Because tags are associated with instances, not IP addresses. One or both of
	// sourceRanges and sourceTags may be set. If both fields are set, the firewall
	// applies to traffic that has a source IP address within sourceRanges OR a
	// source IP from a resource with a matching tag listed in the sourceTags
	// field. The connection does not need to match both fields for the firewall to
	// apply.
	SourceTags []string `json:"sourceTags,omitempty"`
	// TargetServiceAccounts: A list of service accounts indicating sets of
	// instances located in the network that may make network connections as
	// specified in allowed[]. targetServiceAccounts cannot be used at the same
	// time as targetTags or sourceTags. If neither targetServiceAccounts nor
	// targetTags are specified, the firewall rule applies to all instances on the
	// specified network.
	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
	// TargetTags: A list of tags that controls which instances the firewall rule
	// applies to. If targetTags are specified, then the firewall rule applies only
	// to instances in the VPC network that have one of those tags. If no
	// targetTags are specified, the firewall rule applies to all instances on the
	// specified network.
	TargetTags []string `json:"targetTags,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Allowed") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Allowed") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Firewall) MarshalJSON() ([]byte, error) {
	type NoMethod Firewall
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallAllowed struct {
	// IPProtocol: The IP protocol to which this rule applies. The protocol type is
	// required when creating a firewall rule. This value can either be one of the
	// following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp)
	// or the IP protocol number.
	IPProtocol string `json:"IPProtocol,omitempty"`
	// Ports: An optional list of ports to which this rule applies. This field is
	// only applicable for the UDP or TCP protocol. Each entry must be either an
	// integer or a range. If not specified, this rule applies to connections
	// through any port. Example inputs include: ["22"], ["80","443"], and
	// ["12345-12349"].
	Ports []string `json:"ports,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IPProtocol") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallAllowed) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallAllowed
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallDenied struct {
	// IPProtocol: The IP protocol to which this rule applies. The protocol type is
	// required when creating a firewall rule. This value can either be one of the
	// following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp)
	// or the IP protocol number.
	IPProtocol string `json:"IPProtocol,omitempty"`
	// Ports: An optional list of ports to which this rule applies. This field is
	// only applicable for the UDP or TCP protocol. Each entry must be either an
	// integer or a range. If not specified, this rule applies to connections
	// through any port. Example inputs include: ["22"], ["80","443"], and
	// ["12345-12349"].
	Ports []string `json:"ports,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IPProtocol") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallDenied) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallDenied
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FirewallList: Contains a list of firewalls.
type FirewallList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Firewall resources.
	Items []*Firewall `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#firewallList for lists
	// of firewalls.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *FirewallListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallList) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FirewallListWarning: [Output Only] Informational warning message.
type FirewallListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*FirewallListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FirewallLogConfig: The available logging options for a firewall rule.
type FirewallLogConfig struct {
	// Enable: This field denotes whether to enable logging for a particular
	// firewall rule.
	Enable bool `json:"enable,omitempty"`
	// Metadata: This field can only be specified for a particular firewall rule if
	// logging is enabled for that rule. This field denotes whether to include or
	// exclude metadata for firewall logs.
	//
	// Possible values:
	//   "EXCLUDE_ALL_METADATA"
	//   "INCLUDE_ALL_METADATA"
	Metadata string `json:"metadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallLogConfig) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallLogConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallPoliciesListAssociationsResponse struct {
	// Associations: A list of associations.
	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
	// Kind: [Output Only] Type of firewallPolicy associations. Always
	// compute#FirewallPoliciesListAssociations for lists of firewallPolicy
	// associations.
	Kind string `json:"kind,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Associations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Associations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPoliciesListAssociationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FirewallPolicy: Represents a Firewall Policy resource.
type FirewallPolicy struct {
	// Associations: A list of associations that belong to this firewall policy.
	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DisplayName: Deprecated, please use short name instead. User-provided name
	// of the Organization firewall policy. The name should be unique in the
	// organization in which the firewall policy is created. This field is not
	// applicable to network firewall policies. This name must be set on creation
	// and cannot be changed. The name must be 1-63 characters long, and comply
	// with RFC1035. Specifically, the name must be 1-63 characters long and match
	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
	// character must be a lowercase letter, and all following characters must be a
	// dash, lowercase letter, or digit, except the last character, which cannot be
	// a dash.
	DisplayName string `json:"displayName,omitempty"`
	// Fingerprint: Specifies a fingerprint for this resource, which is essentially
	// a hash of the metadata's contents and used for optimistic locking. The
	// fingerprint is initially generated by Compute Engine and changes after every
	// request to modify or update metadata. You must always provide an up-to-date
	// fingerprint hash in order to update or change metadata, otherwise the
	// request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make get() request to the firewall policy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output only] Type of the resource. Always compute#firewallPolicyfor
	// firewall policies
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. For Organization Firewall Policies it's a
	// [Output Only] numeric ID allocated by Google Cloud which uniquely identifies
	// the Organization Firewall Policy.
	Name string `json:"name,omitempty"`
	// PacketMirroringRules: A list of packet mirroring rules that belong to this
	// policy.
	PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"`
	// Parent: [Output Only] The parent of the firewall policy. This field is not
	// applicable to network firewall policies.
	Parent string `json:"parent,omitempty"`
	// Region: [Output Only] URL of the region where the regional firewall policy
	// resides. This field is not applicable to global firewall policies. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Region string `json:"region,omitempty"`
	// RuleTupleCount: [Output Only] Total count of all firewall policy rule
	// tuples. A firewall policy can not exceed a set number of tuples.
	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
	// Rules: A list of rules that belong to this policy. There must always be a
	// default rule (rule with priority 2147483647 and match "*"). If no rules are
	// provided when creating a firewall policy, a default rule with action "allow"
	// will be added.
	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ShortName: User-provided name of the Organization firewall policy. The name
	// should be unique in the organization in which the firewall policy is
	// created. This field is not applicable to network firewall policies. This
	// name must be set on creation and cannot be changed. The name must be 1-63
	// characters long, and comply with RFC1035. Specifically, the name must be
	// 1-63 characters long and match the regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a
	// lowercase letter, and all following characters must be a dash, lowercase
	// letter, or digit, except the last character, which cannot be a dash.
	ShortName string `json:"shortName,omitempty"`
	// VpcNetworkScope: The scope of networks allowed to be associated with the
	// firewall policy. This field can be either GLOBAL_VPC_NETWORK or
	// REGIONAL_VPC_NETWORK. A firewall policy with the VPC scope set to
	// GLOBAL_VPC_NETWORK is allowed to be attached only to global networks. When
	// the VPC scope is set to REGIONAL_VPC_NETWORK the firewall policy is allowed
	// to be attached only to regional networks in the same scope as the firewall
	// policy. Note: if not specified then GLOBAL_VPC_NETWORK will be used.
	//
	// Possible values:
	//   "GLOBAL_VPC_NETWORK" - The firewall policy is allowed to be attached only
	// to global networks.
	//   "REGIONAL_VPC_NETWORK" - The firewall policy is allowed to be attached
	// only to regional networks in the same scope as the firewall policy. This
	// option is applicable only to regional firewall policies.
	VpcNetworkScope string `json:"vpcNetworkScope,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Associations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Associations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallPolicyAssociation struct {
	// AttachmentTarget: The target that the firewall policy is attached to.
	AttachmentTarget string `json:"attachmentTarget,omitempty"`
	// DisplayName: [Output Only] Deprecated, please use short name instead. The
	// display name of the firewall policy of the association.
	DisplayName string `json:"displayName,omitempty"`
	// FirewallPolicyId: [Output Only] The firewall policy ID of the association.
	FirewallPolicyId string `json:"firewallPolicyId,omitempty"`
	// Name: The name for an association.
	Name string `json:"name,omitempty"`
	// Priority: An integer indicating the priority of an association. The priority
	// must be a positive value between 1 and 2147483647. Firewall Policies are
	// evaluated from highest to lowest priority where 1 is the highest priority
	// and 2147483647 is the lowest priority. The default value is `1000`. If two
	// associations have the same priority then lexicographical order on
	// association names is applied.
	Priority int64 `json:"priority,omitempty"`
	// ShortName: [Output Only] The short name of the firewall policy of the
	// association.
	ShortName string `json:"shortName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AttachmentTarget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttachmentTarget") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyAssociation) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyAssociation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallPolicyList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of FirewallPolicy resources.
	Items []*FirewallPolicy `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#firewallPolicyList for
	// listsof FirewallPolicies
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *FirewallPolicyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyList) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FirewallPolicyListWarning: [Output Only] Informational warning message.
type FirewallPolicyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*FirewallPolicyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallPolicyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FirewallPolicyRule: Represents a rule that describes one or more match
// conditions along with the action to be taken when traffic matches this
// condition (allow or deny).
type FirewallPolicyRule struct {
	// Action: The Action to perform when the client connection triggers the rule.
	// Valid actions are "allow", "deny" and "goto_next".
	Action string `json:"action,omitempty"`
	// Description: An optional description for this resource.
	Description string `json:"description,omitempty"`
	// Direction: The direction in which this rule applies.
	//
	// Possible values:
	//   "EGRESS"
	//   "INGRESS"
	Direction string `json:"direction,omitempty"`
	// Disabled: Denotes whether the firewall policy rule is disabled. When set to
	// true, the firewall policy rule is not enforced and traffic behaves as if it
	// did not exist. If this is unspecified, the firewall policy rule will be
	// enabled.
	Disabled bool `json:"disabled,omitempty"`
	// EnableLogging: Denotes whether to enable logging for a particular rule. If
	// logging is enabled, logs will be exported to the configured export
	// destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub.
	// Note: you cannot enable logging on "goto_next" rules.
	EnableLogging bool `json:"enableLogging,omitempty"`
	// Kind: [Output only] Type of the resource. Always compute#firewallPolicyRule
	// for firewall policy rules
	Kind string `json:"kind,omitempty"`
	// Match: A match condition that incoming traffic is evaluated against. If it
	// evaluates to true, the corresponding 'action' is enforced.
	Match *FirewallPolicyRuleMatcher `json:"match,omitempty"`
	// Priority: An integer indicating the priority of a rule in the list. The
	// priority must be a positive value between 0 and 2147483647. Rules are
	// evaluated from highest to lowest priority where 0 is the highest priority
	// and 2147483647 is the lowest prority.
	Priority int64 `json:"priority,omitempty"`
	// RuleName: An optional name for the rule. This field is not a unique
	// identifier and can be updated.
	RuleName string `json:"ruleName,omitempty"`
	// RuleTupleCount: [Output Only] Calculation of the complexity of a single
	// firewall policy rule.
	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
	// SecurityProfileGroup: A fully-qualified URL of a SecurityProfile resource
	// instance. Example:
	// https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group
	// Must be specified if action = 'apply_security_profile_group' and cannot be
	// specified for other actions.
	SecurityProfileGroup string `json:"securityProfileGroup,omitempty"`
	// TargetResources: A list of network resource URLs to which this rule applies.
	// This field allows you to control which network's VMs get this rule. If this
	// field is left blank, all VMs within the organization will receive the rule.
	TargetResources []string `json:"targetResources,omitempty"`
	// TargetSecureTags: A list of secure tags that controls which instances the
	// firewall rule applies to. If targetSecureTag are specified, then the
	// firewall rule applies only to instances in the VPC network that have one of
	// those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE
	// state, then this rule will be ignored. targetSecureTag may not be set at the
	// same time as targetServiceAccounts. If neither targetServiceAccounts nor
	// targetSecureTag are specified, the firewall rule applies to all instances on
	// the specified network. Maximum number of target label tags allowed is 256.
	TargetSecureTags []*FirewallPolicyRuleSecureTag `json:"targetSecureTags,omitempty"`
	// TargetServiceAccounts: A list of service accounts indicating the sets of
	// instances that are applied with this rule.
	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
	// TlsInspect: Boolean flag indicating if the traffic should be TLS decrypted.
	// Can be set only if action = 'apply_security_profile_group' and cannot be set
	// for other actions.
	TlsInspect bool `json:"tlsInspect,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyRule) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FirewallPolicyRuleMatcher: Represents a match condition that incoming
// traffic is evaluated against. Exactly one field must be specified.
type FirewallPolicyRuleMatcher struct {
	// DestAddressGroups: Address groups which should be matched against the
	// traffic destination. Maximum number of destination address groups is 10.
	DestAddressGroups []string `json:"destAddressGroups,omitempty"`
	// DestFqdns: Fully Qualified Domain Name (FQDN) which should be matched
	// against traffic destination. Maximum number of destination fqdn allowed is
	// 100.
	DestFqdns []string `json:"destFqdns,omitempty"`
	// DestIpRanges: CIDR IP address range. Maximum number of destination CIDR IP
	// ranges allowed is 5000.
	DestIpRanges []string `json:"destIpRanges,omitempty"`
	// DestNetworkScope: Network scope of the traffic destination.
	//
	// Possible values:
	//   "INTERNET"
	//   "INTRA_VPC"
	//   "NON_INTERNET"
	//   "UNSPECIFIED"
	//   "VPC_NETWORKS"
	DestNetworkScope string `json:"destNetworkScope,omitempty"`
	// DestRegionCodes: Region codes whose IP addresses will be used to match for
	// destination of traffic. Should be specified as 2 letter country code defined
	// as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region
	// codes allowed is 5000.
	DestRegionCodes []string `json:"destRegionCodes,omitempty"`
	// DestThreatIntelligences: Names of Network Threat Intelligence lists. The IPs
	// in these lists will be matched against traffic destination.
	DestThreatIntelligences []string `json:"destThreatIntelligences,omitempty"`
	// Layer4Configs: Pairs of IP protocols and ports that the rule should match.
	Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"`
	// SrcAddressGroups: Address groups which should be matched against the traffic
	// source. Maximum number of source address groups is 10.
	SrcAddressGroups []string `json:"srcAddressGroups,omitempty"`
	// SrcFqdns: Fully Qualified Domain Name (FQDN) which should be matched against
	// traffic source. Maximum number of source fqdn allowed is 100.
	SrcFqdns []string `json:"srcFqdns,omitempty"`
	// SrcIpRanges: CIDR IP address range. Maximum number of source CIDR IP ranges
	// allowed is 5000.
	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
	// SrcNetworkScope: Network scope of the traffic source.
	//
	// Possible values:
	//   "INTERNET"
	//   "INTRA_VPC"
	//   "NON_INTERNET"
	//   "UNSPECIFIED"
	//   "VPC_NETWORKS"
	SrcNetworkScope string `json:"srcNetworkScope,omitempty"`
	// SrcNetworks: Networks of the traffic source. It can be either a full or
	// partial url.
	SrcNetworks []string `json:"srcNetworks,omitempty"`
	// SrcRegionCodes: Region codes whose IP addresses will be used to match for
	// source of traffic. Should be specified as 2 letter country code defined as
	// per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region
	// codes allowed is 5000.
	SrcRegionCodes []string `json:"srcRegionCodes,omitempty"`
	// SrcSecureTags: List of secure tag values, which should be matched at the
	// source of the traffic. For INGRESS rule, if all the srcSecureTag are
	// INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum
	// number of source tag values allowed is 256.
	SrcSecureTags []*FirewallPolicyRuleSecureTag `json:"srcSecureTags,omitempty"`
	// SrcThreatIntelligences: Names of Network Threat Intelligence lists. The IPs
	// in these lists will be matched against traffic source.
	SrcThreatIntelligences []string `json:"srcThreatIntelligences,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestAddressGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestAddressGroups") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyRuleMatcher
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallPolicyRuleMatcherLayer4Config struct {
	// IpProtocol: The IP protocol to which this rule applies. The protocol type is
	// required when creating a firewall rule. This value can either be one of the
	// following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
	// or the IP protocol number.
	IpProtocol string `json:"ipProtocol,omitempty"`
	// Ports: An optional list of ports to which this rule applies. This field is
	// only applicable for UDP or TCP protocol. Each entry must be either an
	// integer or a range. If not specified, this rule applies to connections
	// through any port. Example inputs include: ["22"], ["80","443"], and
	// ["12345-12349"].
	Ports []string `json:"ports,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpProtocol") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyRuleMatcherLayer4Config
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallPolicyRuleSecureTag struct {
	// Name: Name of the secure tag, created with TagManager's TagValue API.
	Name string `json:"name,omitempty"`
	// State: [Output Only] State of the secure tag, either `EFFECTIVE` or
	// `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its
	// network is deleted.
	//
	// Possible values:
	//   "EFFECTIVE"
	//   "INEFFECTIVE"
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FirewallPolicyRuleSecureTag) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPolicyRuleSecureTag
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FixedOrPercent: Encapsulates numeric value that can be either absolute or
// relative.
type FixedOrPercent struct {
	// Calculated: [Output Only] Absolute value of VM instances calculated based on
	// the specific mode. - If the value is fixed, then the calculated value is
	// equal to the fixed value. - If the value is a percent, then the calculated
	// value is percent/100 * targetSize. For example, the calculated value of a
	// 80% of a managed instance group with 150 instances would be (80/100 * 150) =
	// 120 VM instances. If there is a remainder, the number is rounded.
	Calculated int64 `json:"calculated,omitempty"`
	// Fixed: Specifies a fixed number of VM instances. This must be a positive
	// integer.
	Fixed int64 `json:"fixed,omitempty"`
	// Percent: Specifies a percentage of instances between 0 to 100%, inclusive.
	// For example, specify 80 for 80%.
	Percent int64 `json:"percent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Calculated") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Calculated") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FixedOrPercent) MarshalJSON() ([]byte, error) {
	type NoMethod FixedOrPercent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ForwardingRule: Represents a Forwarding Rule resource. Forwarding rule
// resources in Google Cloud can be either regional or global in scope: *
// Global
// (https://cloud.google.com/compute/docs/reference/rest/alpha/globalForwardingRules)
// * Regional
// (https://cloud.google.com/compute/docs/reference/rest/alpha/forwardingRules)
// A forwarding rule and its corresponding IP address represent the frontend
// configuration of a Google Cloud load balancer. Forwarding rules can also
// reference target instances and Cloud VPN Classic gateways
// (targetVpnGateway). For more information, read Forwarding rule concepts and
// Using protocol forwarding.
type ForwardingRule struct {
	// IPAddress: IP address for which this forwarding rule accepts traffic. When a
	// client sends traffic to this IP address, the forwarding rule directs the
	// traffic to the referenced target or backendService. While creating a
	// forwarding rule, specifying an IPAddress is required under the following
	// circumstances: - When the target is set to targetGrpcProxy and
	// validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0.
	// - When the target is a Private Service Connect Google APIs bundle, you must
	// specify an IPAddress. Otherwise, you can optionally specify an IP address
	// that references an existing static (reserved) IP address resource. When
	// omitted, Google Cloud assigns an ephemeral IP address. Use one of the
	// following formats to specify an IP address while creating a forwarding rule:
	// * IP address number, as in `100.1.2.3` * IPv6 address range, as in
	// `2600:1234::/96` * Full resource URL, as in
	// https://www.googleapis.com/compute/v1/projects/
	// project_id/regions/region/addresses/address-name * Partial URL or by name,
	// as in: - projects/project_id/regions/region/addresses/address-name -
	// regions/region/addresses/address-name - global/addresses/address-name -
	// address-name The forwarding rule's target or backendService, and in most
	// cases, also the loadBalancingScheme, determine the type of IP address that
	// you can use. For detailed information, see IP address specifications
	// (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
	// When reading an IPAddress, the API always returns the IP address number.
	IPAddress string `json:"IPAddress,omitempty"`
	// IPProtocol: The IP protocol to which this rule applies. For protocol
	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT.
	// The valid IP protocols are different for different load balancing products
	// as described in Load balancing features
	// (https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
	//
	// Possible values:
	//   "AH"
	//   "ALL"
	//   "ESP"
	//   "ICMP"
	//   "L3_DEFAULT"
	//   "SCTP"
	//   "TCP"
	//   "UDP"
	IPProtocol string `json:"IPProtocol,omitempty"`
	// AllPorts: The ports, portRange, and allPorts fields are mutually exclusive.
	// Only packets addressed to ports in the specified range will be forwarded to
	// the backends configured with this forwarding rule. The allPorts field has
	// the following limitations: - It requires that the forwarding rule IPProtocol
	// be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following
	// products: internal passthrough Network Load Balancers, backend service-based
	// external passthrough Network Load Balancers, and internal and external
	// protocol forwarding. - Set this field to true to allow packets addressed to
	// any port or packets lacking destination port information (for example, UDP
	// fragments after the first fragment) to be forwarded to the backends
	// configured with this forwarding rule. The L3_DEFAULT protocol requires
	// allPorts be set to true.
	AllPorts bool `json:"allPorts,omitempty"`
	// AllowGlobalAccess: If set to true, clients can access the internal
	// passthrough Network Load Balancers, the regional internal Application Load
	// Balancer, and the regional internal proxy Network Load Balancer from all
	// regions. If false, only allows access from the local region the load
	// balancer is located at. Note that for INTERNAL_MANAGED forwarding rules,
	// this field cannot be changed after the forwarding rule is created.
	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
	// AllowPscGlobalAccess: This is used in PSC consumer ForwardingRule to control
	// whether the PSC endpoint can be accessed from another region.
	AllowPscGlobalAccess bool `json:"allowPscGlobalAccess,omitempty"`
	// AllowPscPacketInjection: This is used in PSC consumer ForwardingRule to
	// control whether the producer is allowed to inject packets into the
	// consumer's network. If set to true, the target service attachment must have
	// tunneling enabled and TunnelingConfig.RoutingMode set to PACKET_INJECTION
	// Non-PSC forwarding rules should not use this field.
	AllowPscPacketInjection bool `json:"allowPscPacketInjection,omitempty"`
	// BackendService: Identifies the backend service to which the forwarding rule
	// sends traffic. Required for internal and external passthrough Network Load
	// Balancers; must be omitted for all other load balancer types.
	BackendService string `json:"backendService,omitempty"`
	// BaseForwardingRule: [Output Only] The URL for the corresponding base
	// forwarding rule. By base forwarding rule, we mean the forwarding rule that
	// has the same IP address, protocol, and port settings with the current
	// forwarding rule, but without sourceIPRanges specified. Always empty if the
	// current forwarding rule does not have sourceIPRanges specified.
	BaseForwardingRule string `json:"baseForwardingRule,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// ExternalManagedBackendBucketMigrationState: Specifies the canary migration
	// state for the backend buckets attached to this forwarding rule. Possible
	// values are PREPARE, TEST_BY_PERCENTAGE, and TEST_ALL_TRAFFIC. To begin the
	// migration from EXTERNAL to EXTERNAL_MANAGED, the state must be changed to
	// PREPARE. The state must be changed to TEST_ALL_TRAFFIC before the
	// loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the
	// TEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets
	// attached to this forwarding rule by percentage using
	// externalManagedBackendBucketMigrationTestingPercentage. Rolling back a
	// migration requires the states to be set in reverse order. So changing the
	// scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to be set to
	// TEST_ALL_TRAFFIC at the same time. Optionally, the TEST_BY_PERCENTAGE state
	// can be used to migrate some traffic back to EXTERNAL or PREPARE can be used
	// to migrate all traffic back to EXTERNAL.
	//
	// Possible values:
	//   "PREPARE"
	//   "TEST_ALL_TRAFFIC"
	//   "TEST_BY_PERCENTAGE"
	ExternalManagedBackendBucketMigrationState string `json:"externalManagedBackendBucketMigrationState,omitempty"`
	// ExternalManagedBackendBucketMigrationTestingPercentage: Determines the
	// fraction of requests to backend buckets that should be processed by the
	// global external Application Load Balancer. The value of this field must be
	// in the range [0, 100]. This value can only be set if the loadBalancingScheme
	// in the BackendService is set to EXTERNAL (when using the classic Application
	// Load Balancer) and the migration state is TEST_BY_PERCENTAGE.
	ExternalManagedBackendBucketMigrationTestingPercentage float64 `json:"externalManagedBackendBucketMigrationTestingPercentage,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a ForwardingRule. Include the fingerprint in patch
	// request to ensure that you do not overwrite changes that were applied from
	// another concurrent request. To see the latest fingerprint, make a get()
	// request to retrieve a ForwardingRule.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IpCollection: Resource reference of a PublicDelegatedPrefix. The PDP must be
	// a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode. Use one of the
	// following formats to specify a sub-PDP when creating an IPv6 NetLB
	// forwarding rule using BYOIP: Full resource URL, as in
	// https://www.googleapis.com/compute/v1/projects/project_id/regions/region
	// /publicDelegatedPrefixes/sub-pdp-name Partial URL, as in: -
	// projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name -
	// regions/region/publicDelegatedPrefixes/sub-pdp-name
	IpCollection string `json:"ipCollection,omitempty"`
	// IpVersion: The IP Version that will be used by this forwarding rule. Valid
	// options are IPV4 or IPV6.
	//
	// Possible values:
	//   "IPV4"
	//   "IPV6"
	//   "UNSPECIFIED_VERSION"
	IpVersion string `json:"ipVersion,omitempty"`
	// IsMirroringCollector: Indicates whether or not this load balancer can be
	// used as a collector for packet mirroring. To prevent mirroring loops,
	// instances behind this load balancer will not have their traffic mirrored
	// even if a PacketMirroring rule applies to them. This can only be set to true
	// for load balancers that have their loadBalancingScheme set to INTERNAL.
	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#forwardingRule for
	// forwarding rule resources.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// resource, which is essentially a hash of the labels set used for optimistic
	// locking. The fingerprint is initially generated by Compute Engine and
	// changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a ForwardingRule.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// LoadBalancingScheme: Specifies the forwarding rule type. For more
	// information about forwarding rules, refer to Forwarding rule concepts.
	//
	// Possible values:
	//   "EXTERNAL"
	//   "EXTERNAL_MANAGED"
	//   "INTERNAL"
	//   "INTERNAL_MANAGED"
	//   "INTERNAL_SELF_MANAGED"
	//   "INVALID"
	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
	// MetadataFilters: Opaque filter criteria used by load balancer to restrict
	// routing configuration to a limited set of xDS compliant clients. In their
	// xDS requests to load balancer, xDS clients present node metadata. When there
	// is a match, the relevant configuration is made available to those proxies.
	// Otherwise, all the resources (e.g. TargetHttpProxy, UrlMap) referenced by
	// the ForwardingRule are not visible to those proxies. For each metadataFilter
	// in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one
	// of the filterLabels must match the corresponding label provided in the
	// metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its
	// filterLabels must match with corresponding labels provided in the metadata.
	// If multiple metadataFilters are specified, all of them need to be satisfied
	// in order to be considered a match. metadataFilters specified here will be
	// applifed before those specified in the UrlMap that this ForwardingRule
	// references. metadataFilters only applies to Loadbalancers that have their
	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash. For Private Service Connect forwarding rules that forward traffic to
	// Google APIs, the forwarding rule name must be a 1-20 characters string with
	// lowercase letters and numbers and must start with a letter.
	Name string `json:"name,omitempty"`
	// Network: This field is not used for global external load balancing. For
	// internal passthrough Network Load Balancers, this field identifies the
	// network that the load balanced IP should belong to for this forwarding rule.
	// If the subnetwork is specified, the network of the subnetwork will be used.
	// If neither subnetwork nor this field is specified, the default network will
	// be used. For Private Service Connect forwarding rules that forward traffic
	// to Google APIs, a network must be provided.
	Network string `json:"network,omitempty"`
	// NetworkTier: This signifies the networking tier used for configuring this
	// load balancer and can only take the following values: PREMIUM, STANDARD. For
	// regional ForwardingRule, the valid values are PREMIUM and STANDARD. For
	// GlobalForwardingRule, the valid value is PREMIUM. If this field is not
	// specified, it is assumed to be PREMIUM. If IPAddress is specified, this
	// value must be equal to the networkTier of the Address.
	//
	// Possible values:
	//   "FIXED_STANDARD" - Public internet quality with fixed bandwidth.
	//   "PREMIUM" - High quality, Google-grade network tier, support for all
	// networking products.
	//   "SELECT" - Price competitive network tier, support for all networking
	// products.
	//   "STANDARD" - Public internet quality, only limited support for other
	// networking products.
	//   "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for
	// FIXED_STANDARD when fixed standard tier is expired or not configured.
	NetworkTier string `json:"networkTier,omitempty"`
	// NoAutomateDnsZone: This is used in PSC consumer ForwardingRule to control
	// whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding
	// rules do not use this field. Once set, this field is not mutable.
	NoAutomateDnsZone bool `json:"noAutomateDnsZone,omitempty"`
	// PortRange: The ports, portRange, and allPorts fields are mutually exclusive.
	// Only packets addressed to ports in the specified range will be forwarded to
	// the backends configured with this forwarding rule. The portRange field has
	// the following limitations: - It requires that the forwarding rule IPProtocol
	// be TCP, UDP, or SCTP, and - It's applicable only to the following products:
	// external passthrough Network Load Balancers, internal and external proxy
	// Network Load Balancers, internal and external Application Load Balancers,
	// external protocol forwarding, and Classic VPN. - Some products have
	// restrictions on what ports can be used. See port specifications for details.
	// For external forwarding rules, two or more forwarding rules cannot use the
	// same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges.
	// For internal forwarding rules within the same VPC network, two or more
	// forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and
	// cannot have overlapping portRanges. @pattern: \\d+(?:-\\d+)?
	PortRange string `json:"portRange,omitempty"`
	// Ports: The ports, portRange, and allPorts fields are mutually exclusive.
	// Only packets addressed to ports in the specified range will be forwarded to
	// the backends configured with this forwarding rule. The ports field has the
	// following limitations: - It requires that the forwarding rule IPProtocol be
	// TCP, UDP, or SCTP, and - It's applicable only to the following products:
	// internal passthrough Network Load Balancers, backend service-based external
	// passthrough Network Load Balancers, and internal protocol forwarding. - You
	// can specify a list of up to five ports by number, separated by commas. The
	// ports can be contiguous or discontiguous. For external forwarding rules, two
	// or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if
	// they share at least one port number. For internal forwarding rules within
	// the same VPC network, two or more forwarding rules cannot use the same
	// [IPAddress, IPProtocol] pair if they share at least one port number.
	// @pattern: \\d+(?:-\\d+)?
	Ports []string `json:"ports,omitempty"`
	// PscConnectionId: [Output Only] The PSC connection id of the PSC forwarding
	// rule.
	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
	// Possible values:
	//   "ACCEPTED" - The connection has been accepted by the producer.
	//   "CLOSED" - The connection has been closed by the producer and will not
	// serve traffic going forward.
	//   "NEEDS_ATTENTION" - The connection has been accepted by the producer, but
	// the producer needs to take further action before the forwarding rule can
	// serve traffic.
	//   "PENDING" - The connection is pending acceptance by the producer.
	//   "REJECTED" - The connection has been rejected by the producer.
	//   "STATUS_UNSPECIFIED"
	PscConnectionStatus string `json:"pscConnectionStatus,omitempty"`
	// Region: [Output Only] URL of the region where the regional forwarding rule
	// resides. This field is not applicable to global forwarding rules. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ServiceDirectoryRegistrations: Service Directory resources to register this
	// forwarding rule with. Currently, only supports a single Service Directory
	// resource.
	ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"`
	// ServiceLabel: An optional prefix to the service name for this forwarding
	// rule. If specified, the prefix is the first label of the fully qualified
	// service name. The label must be 1-63 characters long, and comply with
	// RFC1035. Specifically, the label must be 1-63 characters long and match the
	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
	// character must be a lowercase letter, and all following characters must be a
	// dash, lowercase letter, or digit, except the last character, which cannot be
	// a dash. This field is only used for internal load balancing.
	ServiceLabel string `json:"serviceLabel,omitempty"`
	// ServiceName: [Output Only] The internal fully qualified service name for
	// this forwarding rule. This field is only used for internal load balancing.
	ServiceName string `json:"serviceName,omitempty"`
	// SourceIpRanges: If not empty, this forwarding rule will only forward the
	// traffic when the source IP address matches one of the IP addresses or CIDR
	// ranges set here. Note that a forwarding rule can only have up to 64 source
	// IP ranges, and this field can only be used with a regional forwarding rule
	// whose scheme is EXTERNAL. Each source_ip_range entry should be either an IP
	// address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).
	SourceIpRanges []string `json:"sourceIpRanges,omitempty"`
	// Subnetwork: This field identifies the subnetwork that the load balanced IP
	// should belong to for this forwarding rule, used with internal load balancers
	// and external passthrough Network Load Balancers with IPv6. If the network
	// specified is in auto subnet mode, this field is optional. However, a
	// subnetwork must be specified if the network is in custom subnet mode or when
	// creating external forwarding rule with IPv6.
	Subnetwork string `json:"subnetwork,omitempty"`
	// Target: The URL of the target resource to receive the matched traffic. For
	// regional forwarding rules, this target must be in the same region as the
	// forwarding rule. For global forwarding rules, this target must be a global
	// load balancing resource. The forwarded traffic must be of a type appropriate
	// to the target object. - For load balancers, see the "Target" column in Port
	// specifications
	// (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
	// - For Private Service Connect forwarding rules that forward traffic to
	// Google APIs, provide the name of a supported Google API bundle: - vpc-sc -
	// APIs that support VPC Service Controls. - all-apis - All supported Google
	// APIs. - For Private Service Connect forwarding rules that forward traffic to
	// managed services, the target must be a service attachment. The target is not
	// mutable once set as a service attachment.
	Target string `json:"target,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "IPAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IPAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRule) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *ForwardingRule) UnmarshalJSON(data []byte) error {
	type NoMethod ForwardingRule
	var s1 struct {
		ExternalManagedBackendBucketMigrationTestingPercentage gensupport.JSONFloat64 `json:"externalManagedBackendBucketMigrationTestingPercentage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ExternalManagedBackendBucketMigrationTestingPercentage = float64(s1.ExternalManagedBackendBucketMigrationTestingPercentage)
	return nil
}

type ForwardingRuleAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of ForwardingRulesScopedList resources.
	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ForwardingRuleAggregatedListWarning: [Output Only] Informational warning
// message.
type ForwardingRuleAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ForwardingRuleAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ForwardingRuleList: Contains a list of ForwardingRule resources.
type ForwardingRuleList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of ForwardingRule resources.
	Items []*ForwardingRule `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleList) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ForwardingRuleListWarning: [Output Only] Informational warning message.
type ForwardingRuleListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ForwardingRuleListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ForwardingRuleReference struct {
	ForwardingRule string `json:"forwardingRule,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ForwardingRule") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleReference) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ForwardingRuleServiceDirectoryRegistration: Describes the auto-registration
// of the forwarding rule to Service Directory. The region and project of the
// Service Directory resource generated from this registration will be the same
// as this forwarding rule.
type ForwardingRuleServiceDirectoryRegistration struct {
	// Namespace: Service Directory namespace to register the forwarding rule
	// under.
	Namespace string `json:"namespace,omitempty"`
	// Service: Service Directory service to register the forwarding rule under.
	Service string `json:"service,omitempty"`
	// ServiceDirectoryRegion: [Optional] Service Directory region to register this
	// global forwarding rule under. Default to "us-central1". Only used for PSC
	// for Google APIs. All PSC for Google APIs forwarding rules on the same
	// network should use the same Service Directory region.
	ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Namespace") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Namespace") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRuleServiceDirectoryRegistration
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ForwardingRulesScopedList struct {
	// ForwardingRules: A list of forwarding rules contained in this scope.
	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
	// Warning: Informational warning which replaces the list of forwarding rules
	// when the list is empty.
	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ForwardingRules") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRulesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ForwardingRulesScopedListWarning: Informational warning which replaces the
// list of forwarding rules when the list is empty.
type ForwardingRulesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRulesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ForwardingRulesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ForwardingRulesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservation struct {
	// AutoCreatedReservationsDeleteTime: Future timestamp when the FR auto-created
	// reservations will be deleted by Compute Engine. Format of this field must be
	// a valid href="https://www.ietf.org/rfc/rfc3339.txt">RFC3339 value.
	AutoCreatedReservationsDeleteTime string `json:"autoCreatedReservationsDeleteTime,omitempty"`
	// AutoCreatedReservationsDuration: Specifies the duration of auto-created
	// reservations. It represents relative time to future reservation start_time
	// when auto-created reservations will be automatically deleted by Compute
	// Engine. Duration time unit is represented as a count of seconds and
	// fractions of seconds at nanosecond resolution.
	AutoCreatedReservationsDuration *Duration `json:"autoCreatedReservationsDuration,omitempty"`
	// AutoDeleteAutoCreatedReservations: Setting for enabling or disabling
	// automatic deletion for auto-created reservation. If set to true,
	// auto-created reservations will be deleted at Future Reservation's end time
	// (default) or at user's defined timestamp if any of the
	// [auto_created_reservations_delete_time, auto_created_reservations_duration]
	// values is specified. For keeping auto-created reservation indefinitely, this
	// value should be set to false.
	AutoDeleteAutoCreatedReservations bool `json:"autoDeleteAutoCreatedReservations,omitempty"`
	// CreationTimestamp: [Output Only] The creation timestamp for this future
	// reservation in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the future reservation.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] A unique identifier for this future reservation. The
	// server defines this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#futureReservation
	// for future reservations.
	Kind string `json:"kind,omitempty"`
	// Name: The name of the resource, provided by the client when initially
	// creating the resource. The resource name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// NamePrefix: Name prefix for the reservations to be created at the time of
	// delivery. The name prefix must comply with RFC1035. Maximum allowed length
	// for name prefix is 20. Automatically created reservations name format will
	// be -date-####.
	NamePrefix string `json:"namePrefix,omitempty"`
	// PlanningStatus: Planning state before being submitted for evaluation
	//
	// Possible values:
	//   "DRAFT" - Future Reservation is being drafted.
	//   "PLANNING_STATUS_UNSPECIFIED"
	//   "SUBMITTED" - Future Reservation has been submitted for evaluation by GCP.
	PlanningStatus string `json:"planningStatus,omitempty"`
	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
	// resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ShareSettings: List of Projects/Folders to share with.
	ShareSettings *ShareSettings `json:"shareSettings,omitempty"`
	// SpecificReservationRequired: Indicates whether the auto-created reservation
	// can be consumed by VMs with affinity for "any" reservation. If the field is
	// set, then only VMs that target the reservation by name can consume from the
	// delivered reservation. If set to true,the delivered resevervation will have
	// the same name as the future reservation.
	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
	// SpecificSkuProperties: Future Reservation configuration to indicate instance
	// properties and total count.
	SpecificSkuProperties *FutureReservationSpecificSKUProperties `json:"specificSkuProperties,omitempty"`
	// Status: [Output only] Status of the Future Reservation
	Status *FutureReservationStatus `json:"status,omitempty"`
	// TimeWindow: Time window for this Future Reservation.
	TimeWindow *FutureReservationTimeWindow `json:"timeWindow,omitempty"`
	// Zone: [Output Only] URL of the Zone where this future reservation resides.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g.
	// "AutoCreatedReservationsDeleteTime") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "AutoCreatedReservationsDeleteTime") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s FutureReservation) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationSpecificSKUProperties struct {
	// InstanceProperties: Properties of the SKU instances being reserved.
	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
	// SourceInstanceTemplate: The instance template that will be used to populate
	// the ReservedInstanceProperties of the future reservation
	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
	// TotalCount: Total number of instances for which capacity assurance is
	// requested at a future time period.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "InstanceProperties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceProperties") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationSpecificSKUProperties) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationSpecificSKUProperties
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationStatus: [Output only] Represents status related to the
// future reservation.
type FutureReservationStatus struct {
	// AmendmentStatus: [Output Only] The current status of the requested
	// amendment.
	//
	// Possible values:
	//   "AMENDMENT_APPROVED" - The requested amendment to the Future Resevation
	// has been approved and applied by GCP.
	//   "AMENDMENT_DECLINED" - The requested amendment to the Future Reservation
	// has been declined by GCP and the original state was restored.
	//   "AMENDMENT_IN_REVIEW" - The requested amendment to the Future Reservation
	// is currently being reviewd by GCP.
	//   "AMENDMENT_STATUS_UNSPECIFIED"
	AmendmentStatus string `json:"amendmentStatus,omitempty"`
	// AutoCreatedReservations: Fully qualified urls of the automatically created
	// reservations at start_time.
	AutoCreatedReservations []string `json:"autoCreatedReservations,omitempty"`
	// FulfilledCount: This count indicates the fulfilled capacity so far. This is
	// set during "PROVISIONING" state. This count also includes capacity delivered
	// as part of existing matching reservations.
	FulfilledCount int64 `json:"fulfilledCount,omitempty,string"`
	// LastKnownGoodState: [Output Only] This field represents the future
	// reservation before an amendment was requested. If the amendment is declined,
	// the Future Reservation will be reverted to the last known good state. The
	// last known good state is not set when updating a future reservation whose
	// Procurement Status is DRAFTING.
	LastKnownGoodState *FutureReservationStatusLastKnownGoodState `json:"lastKnownGoodState,omitempty"`
	// LockTime: Time when Future Reservation would become LOCKED, after which no
	// modifications to Future Reservation will be allowed. Applicable only after
	// the Future Reservation is in the APPROVED state. The lock_time is an RFC3339
	// string. The procurement_status will transition to PROCURING state at this
	// time.
	LockTime string `json:"lockTime,omitempty"`
	// ProcurementStatus: Current state of this Future Reservation
	//
	// Possible values:
	//   "APPROVED" - Future reservation is approved by GCP.
	//   "CANCELLED" - Future reservation is cancelled by the customer.
	//   "COMMITTED" - Future reservation is committed by the customer.
	//   "DECLINED" - Future reservation is rejected by GCP.
	//   "DRAFTING" - Related status for PlanningStatus.Draft. Transitions to
	// PENDING_APPROVAL upon user submitting FR.
	//   "FAILED" - Future reservation failed. No additional reservations were
	// provided.
	//   "FAILED_PARTIALLY_FULFILLED" - Future reservation is partially fulfilled.
	// Additional reservations were provided but did not reach total_count reserved
	// instance slots.
	//   "FULFILLED" - Future reservation is fulfilled completely.
	//   "PENDING_AMENDMENT_APPROVAL" - An Amendment to the Future Reservation has
	// been requested. If the Amendment is declined, the Future Reservation will be
	// restored to the last known good state.
	//   "PENDING_APPROVAL" - Future reservation is pending approval by GCP.
	//   "PROCUREMENT_STATUS_UNSPECIFIED"
	//   "PROCURING" - Future reservation is being procured by GCP. Beyond this
	// point, Future reservation is locked and no further modifications are
	// allowed.
	//   "PROVISIONING" - Future reservation capacity is being provisioned. This
	// state will be entered after start_time, while reservations are being created
	// to provide total_count reserved instance slots. This state will not persist
	// past start_time + 24h.
	ProcurementStatus     string                                        `json:"procurementStatus,omitempty"`
	SpecificSkuProperties *FutureReservationStatusSpecificSKUProperties `json:"specificSkuProperties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmendmentStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmendmentStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationStatus) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationStatusLastKnownGoodState: The state that the future
// reservation will be reverted to should the amendment be declined.
type FutureReservationStatusLastKnownGoodState struct {
	// Description: [Output Only] The description of the FutureReservation before
	// an amendment was requested.
	Description            string                                                           `json:"description,omitempty"`
	FutureReservationSpecs *FutureReservationStatusLastKnownGoodStateFutureReservationSpecs `json:"futureReservationSpecs,omitempty"`
	// LockTime: [Output Only] The lock time of the FutureReservation before an
	// amendment was requested.
	LockTime string `json:"lockTime,omitempty"`
	// NamePrefix: [Output Only] The name prefix of the Future Reservation before
	// an amendment was requested.
	NamePrefix string `json:"namePrefix,omitempty"`
	// ProcurementStatus: [Output Only] The status of the last known good state for
	// the Future Reservation.
	//
	// Possible values:
	//   "APPROVED" - Future reservation is approved by GCP.
	//   "CANCELLED" - Future reservation is cancelled by the customer.
	//   "COMMITTED" - Future reservation is committed by the customer.
	//   "DECLINED" - Future reservation is rejected by GCP.
	//   "DRAFTING" - Related status for PlanningStatus.Draft. Transitions to
	// PENDING_APPROVAL upon user submitting FR.
	//   "FAILED" - Future reservation failed. No additional reservations were
	// provided.
	//   "FAILED_PARTIALLY_FULFILLED" - Future reservation is partially fulfilled.
	// Additional reservations were provided but did not reach total_count reserved
	// instance slots.
	//   "FULFILLED" - Future reservation is fulfilled completely.
	//   "PENDING_AMENDMENT_APPROVAL" - An Amendment to the Future Reservation has
	// been requested. If the Amendment is declined, the Future Reservation will be
	// restored to the last known good state.
	//   "PENDING_APPROVAL" - Future reservation is pending approval by GCP.
	//   "PROCUREMENT_STATUS_UNSPECIFIED"
	//   "PROCURING" - Future reservation is being procured by GCP. Beyond this
	// point, Future reservation is locked and no further modifications are
	// allowed.
	//   "PROVISIONING" - Future reservation capacity is being provisioned. This
	// state will be entered after start_time, while reservations are being created
	// to provide total_count reserved instance slots. This state will not persist
	// past start_time + 24h.
	ProcurementStatus string `json:"procurementStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationStatusLastKnownGoodState) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationStatusLastKnownGoodState
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationStatusLastKnownGoodStateFutureReservationSpecs: The
// properties of the last known good state for the Future Reservation.
type FutureReservationStatusLastKnownGoodStateFutureReservationSpecs struct {
	// ShareSettings: [Output Only] The previous share settings of the Future
	// Reservation.
	ShareSettings *ShareSettings `json:"shareSettings,omitempty"`
	// SpecificSkuProperties: [Output Only] The previous instance related
	// properties of the Future Reservation.
	SpecificSkuProperties *FutureReservationSpecificSKUProperties `json:"specificSkuProperties,omitempty"`
	// TimeWindow: [Output Only] The previous time window of the Future
	// Reservation.
	TimeWindow *FutureReservationTimeWindow `json:"timeWindow,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ShareSettings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ShareSettings") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationStatusLastKnownGoodStateFutureReservationSpecs) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationStatusSpecificSKUProperties: Properties to be set for the
// Future Reservation.
type FutureReservationStatusSpecificSKUProperties struct {
	// SourceInstanceTemplateId: ID of the instance template used to populate the
	// Future Reservation properties.
	SourceInstanceTemplateId string `json:"sourceInstanceTemplateId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SourceInstanceTemplateId")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SourceInstanceTemplateId") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationStatusSpecificSKUProperties) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationStatusSpecificSKUProperties
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationTimeWindow struct {
	Duration *Duration `json:"duration,omitempty"`
	EndTime  string    `json:"endTime,omitempty"`
	// StartTime: Start time of the Future Reservation. The start_time is an
	// RFC3339 string.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Duration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Duration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationTimeWindow) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationTimeWindow
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationsAggregatedListResponse: Contains a list of future
// reservations.
type FutureReservationsAggregatedListResponse struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Future reservation resources.
	Items map[string]FutureReservationsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#futureReservationsAggregatedListResponse for future resevation
	// aggregated list response.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *FutureReservationsAggregatedListResponseWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsAggregatedListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsAggregatedListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationsAggregatedListResponseWarning: [Output Only] Informational
// warning message.
type FutureReservationsAggregatedListResponseWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*FutureReservationsAggregatedListResponseWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsAggregatedListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsAggregatedListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationsAggregatedListResponseWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsAggregatedListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsAggregatedListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationsListResponse struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Items: [Output Only] A list of future reservation resources.
	Items []*FutureReservation `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always
	// compute#FutureReservationsListResponse for lists of reservations
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *FutureReservationsListResponseWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationsListResponseWarning: [Output Only] Informational warning
// message.
type FutureReservationsListResponseWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*FutureReservationsListResponseWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationsListResponseWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationsScopedList struct {
	// FutureReservations: A list of future reservations contained in this scope.
	FutureReservations []*FutureReservation `json:"futureReservations,omitempty"`
	// Warning: Informational warning which replaces the list of future
	// reservations when the list is empty.
	Warning *FutureReservationsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FutureReservations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FutureReservations") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureReservationsScopedListWarning: Informational warning which replaces
// the list of future reservations when the list is empty.
type FutureReservationsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*FutureReservationsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s FutureReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GRPCHealthCheck struct {
	// GrpcServiceName: The gRPC service name for the health check. This field is
	// optional. The value of grpc_service_name has the following meanings by
	// convention: - Empty service_name means the overall status of all services at
	// the backend. - Non-empty service_name means the health of that gRPC service,
	// as defined by the owner of the service. The grpc_service_name can only be
	// ASCII.
	GrpcServiceName string `json:"grpcServiceName,omitempty"`
	// Port: The TCP port number to which the health check prober sends packets.
	// Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortName: Not supported.
	PortName string `json:"portName,omitempty"`
	// PortSpecification: Specifies how a port is selected for health checking. Can
	// be one of the following values: USE_FIXED_PORT: Specifies a port number
	// explicitly using the port field in the health check. Supported by backend
	// services for passthrough load balancers and backend services for proxy load
	// balancers. Not supported by target pools. The health check supports all
	// backends supported by the backend service provided the backend can be health
	// checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT
	// network endpoint groups, and instance group backends. USE_NAMED_PORT: Not
	// supported. USE_SERVING_PORT: Provides an indirect method of specifying the
	// health check port by referring to the backend service. Only supported by
	// backend services for proxy load balancers. Not supported by target pools.
	// Not supported by backend services for passthrough load balancers. Supports
	// all backends that can be health checked; for example, GCE_VM_IP_PORT network
	// endpoint groups and instance group backends. For GCE_VM_IP_PORT network
	// endpoint group backends, the health check uses the port number specified for
	// each endpoint in the network endpoint group. For instance group backends,
	// the health check uses the port number determined by looking up the backend
	// service's named port in the instance group's list of named ports.
	//
	// Possible values:
	//   "USE_FIXED_PORT" - The port number in the health check's port is used for
	// health checking. Applies to network endpoint group and instance group
	// backends.
	//   "USE_NAMED_PORT" - Not supported.
	//   "USE_SERVING_PORT" - For network endpoint group backends, the health check
	// uses the port number specified on each endpoint in the network endpoint
	// group. For instance group backends, the health check uses the port number
	// specified for the backend service's named port defined in the instance
	// group's named ports.
	PortSpecification string `json:"portSpecification,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GrpcServiceName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GRPCHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod GRPCHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GRPCTLSHealthCheck struct {
	// GrpcServiceName: The gRPC service name for the health check. This field is
	// optional. The value of grpc_service_name has the following meanings by
	// convention: - Empty service_name means the overall status of all services at
	// the backend. - Non-empty service_name means the health of that gRPC service,
	// as defined by the owner of the service. The grpc_service_name can only be
	// ASCII.
	GrpcServiceName string `json:"grpcServiceName,omitempty"`
	// Port: The TCP port number to which the health check prober sends packets.
	// Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortSpecification: Specifies how a port is selected for health checking. Can
	// be one of the following values: USE_FIXED_PORT: Specifies a port number
	// explicitly using the port field in the health check. Supported by backend
	// services for passthrough load balancers and backend services for proxy load
	// balancers. Not supported by target pools. The health check supports all
	// backends supported by the backend service provided the backend can be health
	// checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT
	// network endpoint groups, and instance group backends. USE_NAMED_PORT: Not
	// supported. USE_SERVING_PORT: Provides an indirect method of specifying the
	// health check port by referring to the backend service. Only supported by
	// backend services for proxy load balancers. Not supported by target pools.
	// Not supported by backend services for passthrough load balancers. Supports
	// all backends that can be health checked; for example, GCE_VM_IP_PORT network
	// endpoint groups and instance group backends. For GCE_VM_IP_PORT network
	// endpoint group backends, the health check uses the port number specified for
	// each endpoint in the network endpoint group. For instance group backends,
	// the health check uses the port number determined by looking up the backend
	// service's named port in the instance group's list of named ports.
	//
	// Possible values:
	//   "USE_FIXED_PORT" - The port number in the health check's port is used for
	// health checking. Applies to network endpoint group and instance group
	// backends.
	//   "USE_NAMED_PORT" - Not supported.
	//   "USE_SERVING_PORT" - For network endpoint group backends, the health check
	// uses the port number specified on each endpoint in the network endpoint
	// group. For instance group backends, the health check uses the port number
	// specified for the backend service's named port defined in the instance
	// group's named ports.
	PortSpecification string `json:"portSpecification,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GrpcServiceName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GRPCTLSHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod GRPCTLSHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GetOwnerInstanceResponse struct {
	// Instance: Full instance resource URL.
	Instance string `json:"instance,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Instance") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instance") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GetOwnerInstanceResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GetOwnerInstanceResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GlobalAddressesMoveRequest struct {
	// Description: An optional destination address description if intended to be
	// different from the source.
	Description string `json:"description,omitempty"`
	// DestinationAddress: The URL of the destination address to move to. This can
	// be a full or partial URL. For example, the following are all valid URLs to a
	// address: - https://www.googleapis.com/compute/v1/projects/project
	// /global/addresses/address - projects/project/global/addresses/address Note
	// that destination project must be different from the source project. So
	// /global/addresses/address is not valid partial url.
	DestinationAddress string `json:"destinationAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GlobalAddressesMoveRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalAddressesMoveRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
	// NetworkEndpoints: The list of network endpoints to be attached.
	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpoints") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
	// NetworkEndpoints: The list of network endpoints to be detached.
	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpoints") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GlobalOrganizationSetPolicyRequest struct {
	// Bindings: Flatten Policy to create a backward compatible wire-format.
	// Deprecated. Use 'policy' to specify bindings.
	Bindings []*Binding `json:"bindings,omitempty"`
	// Etag: Flatten Policy to create a backward compatible wire-format.
	// Deprecated. Use 'policy' to specify the etag.
	Etag string `json:"etag,omitempty"`
	// Policy: REQUIRED: The complete policy to be applied to the 'resource'. The
	// size of the policy is limited to a few 10s of KB. An empty policy is in
	// general a valid policy but certain services (like Projects) might reject
	// them.
	Policy *Policy `json:"policy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Bindings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Bindings") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalOrganizationSetPolicyRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GlobalSetLabelsRequest struct {
	// LabelFingerprint: The fingerprint of the previous set of labels for this
	// resource, used to detect conflicts. The fingerprint is initially generated
	// by Compute Engine and changes after every request to modify or update
	// labels. You must always provide an up-to-date fingerprint hash when updating
	// or changing labels, otherwise the request will fail with error 412
	// conditionNotMet. Make a get() request to the resource to get the latest
	// fingerprint.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: A list of labels to apply for this resource. Each label must comply
	// with the requirements for labels. For example, "webserver-frontend":
	// "images". A label value can also be empty (e.g. "my-label": "").
	Labels map[string]string `json:"labels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LabelFingerprint") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalSetLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GlobalSetPolicyRequest struct {
	// Bindings: Flatten Policy to create a backward compatible wire-format.
	// Deprecated. Use 'policy' to specify bindings.
	Bindings []*Binding `json:"bindings,omitempty"`
	// Etag: Flatten Policy to create a backward compatible wire-format.
	// Deprecated. Use 'policy' to specify the etag.
	Etag string `json:"etag,omitempty"`
	// Policy: REQUIRED: The complete policy to be applied to the 'resource'. The
	// size of the policy is limited to a few 10s of KB. An empty policy is in
	// general a valid policy but certain services (like Projects) might reject
	// them.
	Policy *Policy `json:"policy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Bindings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Bindings") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalSetPolicyRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GrpcServiceConfig: [Deprecated] gRPC config to access the SDS server. gRPC
// config to access the SDS server.
type GrpcServiceConfig struct {
	// CallCredentials: The call credentials to access the SDS server.
	CallCredentials *CallCredentials `json:"callCredentials,omitempty"`
	// ChannelCredentials: The channel credentials to access the SDS server.
	ChannelCredentials *ChannelCredentials `json:"channelCredentials,omitempty"`
	// TargetUri: The target URI of the SDS server.
	TargetUri string `json:"targetUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallCredentials") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallCredentials") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GrpcServiceConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GrpcServiceConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GuestAttributes: A guest attributes entry.
type GuestAttributes struct {
	// Kind: [Output Only] Type of the resource. Always compute#guestAttributes for
	// guest attributes entry.
	Kind string `json:"kind,omitempty"`
	// QueryPath: The path to be queried. This can be the default namespace ('') or
	// a nested namespace ('\/') or a specified key ('\/\').
	QueryPath string `json:"queryPath,omitempty"`
	// QueryValue: [Output Only] The value of the requested queried path.
	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// VariableKey: The key to search for.
	VariableKey string `json:"variableKey,omitempty"`
	// VariableValue: [Output Only] The value found for the requested key.
	VariableValue string `json:"variableValue,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GuestAttributes) MarshalJSON() ([]byte, error) {
	type NoMethod GuestAttributes
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GuestAttributesEntry: A guest attributes namespace/key/value entry.
type GuestAttributesEntry struct {
	// Key: Key for the guest attribute entry.
	Key string `json:"key,omitempty"`
	// Namespace: Namespace for the guest attribute entry.
	Namespace string `json:"namespace,omitempty"`
	// Value: Value for the guest attribute entry.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GuestAttributesEntry) MarshalJSON() ([]byte, error) {
	type NoMethod GuestAttributesEntry
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GuestAttributesValue: Array of guest attribute namespace/key/value tuples.
type GuestAttributesValue struct {
	Items []*GuestAttributesEntry `json:"items,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Items") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Items") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GuestAttributesValue) MarshalJSON() ([]byte, error) {
	type NoMethod GuestAttributesValue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GuestOsFeature: Guest OS features.
type GuestOsFeature struct {
	// Type: The ID of a supported feature. To add multiple values, use commas to
	// separate values. Set to one or more of the following values: -
	// VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC
	// - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 -
	// SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling
	// guest operating system features.
	//
	// Possible values:
	//   "BARE_METAL_LINUX_COMPATIBLE"
	//   "FEATURE_TYPE_UNSPECIFIED"
	//   "GVNIC"
	//   "IDPF"
	//   "MULTI_IP_SUBNET"
	//   "SECURE_BOOT"
	//   "SEV_CAPABLE"
	//   "SEV_LIVE_MIGRATABLE"
	//   "SEV_LIVE_MIGRATABLE_V2"
	//   "SEV_SNP_CAPABLE"
	//   "TDX_CAPABLE"
	//   "UEFI_COMPATIBLE"
	//   "VIRTIO_SCSI_MULTIQUEUE"
	//   "WINDOWS"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GuestOsFeature) MarshalJSON() ([]byte, error) {
	type NoMethod GuestOsFeature
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HTTP2HealthCheck struct {
	// Host: The value of the host header in the HTTP/2 health check request. If
	// left empty (default value), the host header is set to the destination IP
	// address to which health check packets are sent. The destination IP address
	// depends on the type of load balancer. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest
	Host string `json:"host,omitempty"`
	// Port: The TCP port number to which the health check prober sends packets.
	// The default value is 443. Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortName: Not supported.
	PortName string `json:"portName,omitempty"`
	// PortSpecification: Specifies how a port is selected for health checking. Can
	// be one of the following values: USE_FIXED_PORT: Specifies a port number
	// explicitly using the port field in the health check. Supported by backend
	// services for passthrough load balancers and backend services for proxy load
	// balancers. Not supported by target pools. The health check supports all
	// backends supported by the backend service provided the backend can be health
	// checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT
	// network endpoint groups, and instance group backends. USE_NAMED_PORT: Not
	// supported. USE_SERVING_PORT: Provides an indirect method of specifying the
	// health check port by referring to the backend service. Only supported by
	// backend services for proxy load balancers. Not supported by target pools.
	// Not supported by backend services for passthrough load balancers. Supports
	// all backends that can be health checked; for example, GCE_VM_IP_PORT network
	// endpoint groups and instance group backends. For GCE_VM_IP_PORT network
	// endpoint group backends, the health check uses the port number specified for
	// each endpoint in the network endpoint group. For instance group backends,
	// the health check uses the port number determined by looking up the backend
	// service's named port in the instance group's list of named ports.
	//
	// Possible values:
	//   "USE_FIXED_PORT" - The port number in the health check's port is used for
	// health checking. Applies to network endpoint group and instance group
	// backends.
	//   "USE_NAMED_PORT" - Not supported.
	//   "USE_SERVING_PORT" - For network endpoint group backends, the health check
	// uses the port number specified on each endpoint in the network endpoint
	// group. For instance group backends, the health check uses the port number
	// specified for the backend service's named port defined in the instance
	// group's named ports.
	PortSpecification string `json:"portSpecification,omitempty"`
	// ProxyHeader: Specifies the type of proxy header to append before sending
	// data to the backend, either NONE or PROXY_V1. The default is NONE.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// RequestPath: The request path of the HTTP/2 health check request. The
	// default value is /. Must comply with RFC3986.
	RequestPath string `json:"requestPath,omitempty"`
	// Response: Creates a content-based HTTP/2 health check. In addition to the
	// required HTTP 200 (OK) status code, you can configure the health check to
	// pass only when the backend sends this specific ASCII response string within
	// the first 1024 bytes of the HTTP response body. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http
	Response string `json:"response,omitempty"`
	// WeightReportMode: Weight report mode. used for weighted Load Balancing.
	//
	// Possible values:
	//   "DISABLE" - Health Checker will not parse the header field.
	//   "DRY_RUN" - Health Checker will parse and report the weight in the header
	// field, but load balancing will not be based on the weights and will use
	// equal weights.
	//   "ENABLE" - Health Checker will try to parse and report the weight in the
	// header field, and load balancing will be based on the weights as long as all
	// backends have a valid weight or only a subset of backends has the
	// UNAVAILABLE_WEIGHT WeightError. The latter case is to continue the weighted
	// load balancing while some backends are in TIMEOUT or UNKNOWN health status.
	WeightReportMode string `json:"weightReportMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Host") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Host") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod HTTP2HealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HTTPHealthCheck struct {
	// Host: The value of the host header in the HTTP health check request. If left
	// empty (default value), the host header is set to the destination IP address
	// to which health check packets are sent. The destination IP address depends
	// on the type of load balancer. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest
	Host string `json:"host,omitempty"`
	// Port: The TCP port number to which the health check prober sends packets.
	// The default value is 80. Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortName: Not supported.
	PortName string `json:"portName,omitempty"`
	// PortSpecification: Specifies how a port is selected for health checking. Can
	// be one of the following values: USE_FIXED_PORT: Specifies a port number
	// explicitly using the port field in the health check. Supported by backend
	// services for passthrough load balancers and backend services for proxy load
	// balancers. Also supported in legacy HTTP health checks for target pools. The
	// health check supports all backends supported by the backend service provided
	// the backend can be health checked. For example, GCE_VM_IP network endpoint
	// groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends.
	// USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method
	// of specifying the health check port by referring to the backend service.
	// Only supported by backend services for proxy load balancers. Not supported
	// by target pools. Not supported by backend services for pass-through load
	// balancers. Supports all backends that can be health checked; for example,
	// GCE_VM_IP_PORT network endpoint groups and instance group backends. For
	// GCE_VM_IP_PORT network endpoint group backends, the health check uses the
	// port number specified for each endpoint in the network endpoint group. For
	// instance group backends, the health check uses the port number determined by
	// looking up the backend service's named port in the instance group's list of
	// named ports.
	//
	// Possible values:
	//   "USE_FIXED_PORT" - The port number in the health check's port is used for
	// health checking. Applies to network endpoint group and instance group
	// backends.
	//   "USE_NAMED_PORT" - Not supported.
	//   "USE_SERVING_PORT" - For network endpoint group backends, the health check
	// uses the port number specified on each endpoint in the network endpoint
	// group. For instance group backends, the health check uses the port number
	// specified for the backend service's named port defined in the instance
	// group's named ports.
	PortSpecification string `json:"portSpecification,omitempty"`
	// ProxyHeader: Specifies the type of proxy header to append before sending
	// data to the backend, either NONE or PROXY_V1. The default is NONE.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// RequestPath: The request path of the HTTP health check request. The default
	// value is /. Must comply with RFC3986.
	RequestPath string `json:"requestPath,omitempty"`
	// Response: Creates a content-based HTTP health check. In addition to the
	// required HTTP 200 (OK) status code, you can configure the health check to
	// pass only when the backend sends this specific ASCII response string within
	// the first 1024 bytes of the HTTP response body. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http
	Response string `json:"response,omitempty"`
	// WeightReportMode: Weight report mode. used for weighted Load Balancing.
	//
	// Possible values:
	//   "DISABLE" - Health Checker will not parse the header field.
	//   "DRY_RUN" - Health Checker will parse and report the weight in the header
	// field, but load balancing will not be based on the weights and will use
	// equal weights.
	//   "ENABLE" - Health Checker will try to parse and report the weight in the
	// header field, and load balancing will be based on the weights as long as all
	// backends have a valid weight or only a subset of backends has the
	// UNAVAILABLE_WEIGHT WeightError. The latter case is to continue the weighted
	// load balancing while some backends are in TIMEOUT or UNKNOWN health status.
	WeightReportMode string `json:"weightReportMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Host") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Host") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HTTPHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod HTTPHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HTTPSHealthCheck struct {
	// Host: The value of the host header in the HTTPS health check request. If
	// left empty (default value), the host header is set to the destination IP
	// address to which health check packets are sent. The destination IP address
	// depends on the type of load balancer. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest
	Host string `json:"host,omitempty"`
	// Port: The TCP port number to which the health check prober sends packets.
	// The default value is 443. Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortName: Not supported.
	PortName string `json:"portName,omitempty"`
	// PortSpecification: Specifies how a port is selected for health checking. Can
	// be one of the following values: USE_FIXED_PORT: Specifies a port number
	// explicitly using the port field in the health check. Supported by backend
	// services for passthrough load balancers and backend services for proxy load
	// balancers. Not supported by target pools. The health check supports all
	// backends supported by the backend service provided the backend can be health
	// checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT
	// network endpoint groups, and instance group backends. USE_NAMED_PORT: Not
	// supported. USE_SERVING_PORT: Provides an indirect method of specifying the
	// health check port by referring to the backend service. Only supported by
	// backend services for proxy load balancers. Not supported by target pools.
	// Not supported by backend services for passthrough load balancers. Supports
	// all backends that can be health checked; for example, GCE_VM_IP_PORT network
	// endpoint groups and instance group backends. For GCE_VM_IP_PORT network
	// endpoint group backends, the health check uses the port number specified for
	// each endpoint in the network endpoint group. For instance group backends,
	// the health check uses the port number determined by looking up the backend
	// service's named port in the instance group's list of named ports.
	//
	// Possible values:
	//   "USE_FIXED_PORT" - The port number in the health check's port is used for
	// health checking. Applies to network endpoint group and instance group
	// backends.
	//   "USE_NAMED_PORT" - Not supported.
	//   "USE_SERVING_PORT" - For network endpoint group backends, the health check
	// uses the port number specified on each endpoint in the network endpoint
	// group. For instance group backends, the health check uses the port number
	// specified for the backend service's named port defined in the instance
	// group's named ports.
	PortSpecification string `json:"portSpecification,omitempty"`
	// ProxyHeader: Specifies the type of proxy header to append before sending
	// data to the backend, either NONE or PROXY_V1. The default is NONE.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// RequestPath: The request path of the HTTPS health check request. The default
	// value is /. Must comply with RFC3986.
	RequestPath string `json:"requestPath,omitempty"`
	// Response: Creates a content-based HTTPS health check. In addition to the
	// required HTTP 200 (OK) status code, you can configure the health check to
	// pass only when the backend sends this specific ASCII response string within
	// the first 1024 bytes of the HTTP response body. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http
	Response string `json:"response,omitempty"`
	// WeightReportMode: Weight report mode. used for weighted Load Balancing.
	//
	// Possible values:
	//   "DISABLE" - Health Checker will not parse the header field.
	//   "DRY_RUN" - Health Checker will parse and report the weight in the header
	// field, but load balancing will not be based on the weights and will use
	// equal weights.
	//   "ENABLE" - Health Checker will try to parse and report the weight in the
	// header field, and load balancing will be based on the weights as long as all
	// backends have a valid weight or only a subset of backends has the
	// UNAVAILABLE_WEIGHT WeightError. The latter case is to continue the weighted
	// load balancing while some backends are in TIMEOUT or UNKNOWN health status.
	WeightReportMode string `json:"weightReportMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Host") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Host") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod HTTPSHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheck: Represents a health check resource. Google Compute Engine has
// two health check resources: * Regional
// (/compute/docs/reference/rest/alpha/regionHealthChecks) * Global
// (/compute/docs/reference/rest/alpha/healthChecks) These health check
// resources can be used for load balancing and for autohealing VMs in a
// managed instance group (MIG). **Load balancing** Health check requirements
// vary depending on the type of load balancer. For details about the type of
// health check supported for each load balancer and corresponding backend
// type, see Health checks overview: Load balancer guide. **Autohealing in
// MIGs** The health checks that you use for autohealing VMs in a MIG can be
// either regional or global. For more information, see Set up an application
// health check and autohealing. For more information, see Health checks
// overview.
type HealthCheck struct {
	// CheckIntervalSec: How often (in seconds) to send a health check. The default
	// value is 5 seconds.
	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description        string              `json:"description,omitempty"`
	GrpcHealthCheck    *GRPCHealthCheck    `json:"grpcHealthCheck,omitempty"`
	GrpcTlsHealthCheck *GRPCTLSHealthCheck `json:"grpcTlsHealthCheck,omitempty"`
	// HealthyThreshold: A so-far unhealthy instance will be marked healthy after
	// this many consecutive successes. The default value is 2.
	HealthyThreshold int64             `json:"healthyThreshold,omitempty"`
	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
	HttpHealthCheck  *HTTPHealthCheck  `json:"httpHealthCheck,omitempty"`
	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Type of the resource.
	Kind string `json:"kind,omitempty"`
	// LogConfig: Configure logging on this health check.
	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035. For
	// example, a name that is 1-63 characters long, matches the regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with RFC1035. This
	// regular expression describes a name where the first character is a lowercase
	// letter, and all following characters are a dash, lowercase letter, or digit,
	// except the last character, which isn't a dash.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] Region where the health check resides. Not applicable
	// to global health checks.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SourceRegions: The list of cloud regions from which health checks are
	// performed. If any regions are specified, then exactly 3 regions should be
	// specified. The region names must be valid names of Google Cloud regions.
	// This can only be set for global health check. If this list is non-empty,
	// then there are restrictions on what other health check fields are supported
	// and what other resources can use this health check: - SSL, HTTP2, and GRPC
	// protocols are not supported. - The TCP request field is not supported. - The
	// proxyHeader field for HTTP, HTTPS, and TCP is not supported. - The
	// checkIntervalSec field must be at least 30. - The health check cannot be
	// used with BackendService nor with managed instance group auto-healing.
	SourceRegions  []string        `json:"sourceRegions,omitempty"`
	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
	// TimeoutSec: How long (in seconds) to wait before claiming failure. The
	// default value is 5 seconds. It is invalid for timeoutSec to have greater
	// value than checkIntervalSec.
	TimeoutSec int64 `json:"timeoutSec,omitempty"`
	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS,
	// HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must
	// be specified, which must match type field.
	//
	// Possible values:
	//   "GRPC"
	//   "GRPC_WITH_TLS"
	//   "HTTP"
	//   "HTTP2"
	//   "HTTPS"
	//   "INVALID"
	//   "SSL"
	//   "TCP"
	//   "UDP"
	Type           string          `json:"type,omitempty"`
	UdpHealthCheck *UDPHealthCheck `json:"udpHealthCheck,omitempty"`
	// UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after
	// this many consecutive failures. The default value is 2.
	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CheckIntervalSec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckList: Contains a list of HealthCheck resources.
type HealthCheckList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthCheck resources.
	Items []*HealthCheck `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HealthCheckListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckListWarning: [Output Only] Informational warning message.
type HealthCheckListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HealthCheckListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthCheckListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckLogConfig: Configuration of logging on a health check. If logging
// is enabled, logs will be exported to Stackdriver.
type HealthCheckLogConfig struct {
	// Enable: Indicates whether or not to export logs. This is false by default,
	// which means no health check logging will be done.
	Enable bool `json:"enable,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckLogConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckReference: A full or valid partial URL to a health check. For
// example, the following are valid URLs: -
// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
// - projects/project-id/global/httpHealthChecks/health-check -
// global/httpHealthChecks/health-check
type HealthCheckReference struct {
	HealthCheck string `json:"healthCheck,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthCheck") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckReference) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckService: Represents a Health-Check as a Service resource.
type HealthCheckService struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a HealthCheckService. An up-to-date fingerprint must
	// be provided in order to patch/update the HealthCheckService; Otherwise, the
	// request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make a get() request to retrieve the HealthCheckService.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HealthChecks: A list of URLs to the HealthCheck resources. Must have at
	// least one HealthCheck, and not more than 10 for regional HealthCheckService,
	// and not more than 1 for global HealthCheckService. HealthCheck resources
	// must have portSpecification=USE_SERVING_PORT or
	// portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the
	// HealthCheck must be regional and in the same region. For global
	// HealthCheckService, HealthCheck must be global. Mix of regional and global
	// HealthChecks is not supported. Multiple regional HealthChecks must belong to
	// the same region. Regional HealthChecks must belong to the same region as
	// zones of NetworkEndpointGroups. For global HealthCheckService using global
	// INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify
	// sourceRegions, and HealthChecks that specify sourceRegions can only be used
	// with global INTERNET_IP_PORT NetworkEndpointGroups.
	HealthChecks []string `json:"healthChecks,omitempty"`
	// HealthStatusAggregationPolicy: Optional. Policy for how the results from
	// multiple health checks for the same endpoint are aggregated. Defaults to
	// NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message
	// is returned for each pair in the health check service. - AND. If any health
	// check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of
	// the endpoint. If all health checks report HEALTHY, the HealthState of the
	// endpoint is HEALTHY. . This is only allowed with regional
	// HealthCheckService.
	//
	// Possible values:
	//   "AND" - If any backend's health check reports UNHEALTHY, then UNHEALTHY is
	// the HealthState of the entire health check service. If all backend's are
	// healthy, the HealthState of the health check service is HEALTHY.
	//   "NO_AGGREGATION" - An EndpointHealth message is returned for each backend
	// in the health check service.
	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
	// HealthStatusAggregationStrategy: This field is deprecated. Use
	// health_status_aggregation_policy instead. Policy for how the results from
	// multiple health checks for the same endpoint are aggregated. -
	// NO_AGGREGATION. An EndpointHealth message is returned for each backend in
	// the health check service. - AND. If any backend's health check reports
	// UNHEALTHY, then UNHEALTHY is the HealthState of the entire health check
	// service. If all backend's are healthy, the HealthState of the health check
	// service is HEALTHY. .
	//
	// Possible values:
	//   "AND" - This is deprecated. Use health_status_aggregation_policy instead.
	// If any backend's health check reports UNHEALTHY, then UNHEALTHY is the
	// HealthState of the entire health check service. If all backend's are
	// healthy, the HealthState of the health check service is HEALTHY.
	//   "NO_AGGREGATION" - This is deprecated. Use
	// health_status_aggregation_policy instead. An EndpointHealth message is
	// returned for each backend in the health check service.
	HealthStatusAggregationStrategy string `json:"healthStatusAggregationStrategy,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output only] Type of the resource. Always
	// compute#healthCheckServicefor health check services.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. The name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// NetworkEndpointGroups: A list of URLs to the NetworkEndpointGroup resources.
	// Must not have more than 100. For regional HealthCheckService, NEGs must be
	// in zones in the region of the HealthCheckService. For global
	// HealthCheckServices, the NetworkEndpointGroups must be global
	// INTERNET_IP_PORT.
	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
	// NotificationEndpoints: A list of URLs to the NotificationEndpoint resources.
	// Must not have more than 10. A list of endpoints for receiving notifications
	// of change in health status. For regional HealthCheckService,
	// NotificationEndpoint must be regional and in the same region. For global
	// HealthCheckService, NotificationEndpoint must be global.
	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
	// Region: [Output Only] URL of the region where the health check service
	// resides. This field is not applicable to global health check services. You
	// must specify this field as part of the HTTP request URL. It is not settable
	// as a field in the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL with id for the resource.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckService) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckService
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckServiceAggregatedList: Contains a list of
// HealthCheckServicesScopedList.
type HealthCheckServiceAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthCheckServicesScopedList resources.
	Items map[string]HealthCheckServicesScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HealthCheckServiceAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServiceAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServiceAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckServiceAggregatedListWarning: [Output Only] Informational warning
// message.
type HealthCheckServiceAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HealthCheckServiceAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServiceAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthCheckServiceAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServiceAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckServiceReference: A full or valid partial URL to a health check
// service. For example, the following are valid URLs: -
// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
// -
// projects/project-id/regions/us-west1/healthCheckServices/health-check-service
//   - regions/us-west1/healthCheckServices/health-check-service
type HealthCheckServiceReference struct {
	HealthCheckService string `json:"healthCheckService,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HealthCheckService") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthCheckService") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServiceReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthCheckServicesList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthCheckService resources.
	Items []*HealthCheckService `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#healthCheckServicesList for lists of HealthCheckServices.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServicesList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServicesList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckServicesListWarning: [Output Only] Informational warning message.
type HealthCheckServicesListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServicesListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthCheckServicesListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServicesListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthCheckServicesScopedList struct {
	// Resources: A list of HealthCheckServices contained in this scope.
	Resources []*HealthCheckService `json:"resources,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *HealthCheckServicesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Resources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Resources") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServicesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServicesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthCheckServicesScopedListWarning: Informational warning which replaces
// the list of backend services when the list is empty.
type HealthCheckServicesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HealthCheckServicesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServicesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServicesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthCheckServicesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthCheckServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthCheckServicesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthChecksAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthChecksScopedList resources.
	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthChecksAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthChecksAggregatedListWarning: [Output Only] Informational warning
// message.
type HealthChecksAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthChecksAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthChecksAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthChecksAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthChecksScopedList struct {
	// HealthChecks: A list of HealthChecks contained in this scope.
	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthChecks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthChecksScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthChecksScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthChecksScopedListWarning: Informational warning which replaces the list
// of backend services when the list is empty.
type HealthChecksScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthChecksScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthChecksScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthChecksScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthStatus struct {
	// Annotations: Metadata defined as annotations for network endpoint.
	Annotations map[string]string `json:"annotations,omitempty"`
	// ForwardingRule: URL of the forwarding rule associated with the health status
	// of the instance.
	ForwardingRule string `json:"forwardingRule,omitempty"`
	// ForwardingRuleIp: A forwarding rule IP address assigned to this instance.
	ForwardingRuleIp string `json:"forwardingRuleIp,omitempty"`
	// HealthState: Health state of the IPv4 address of the instance.
	//
	// Possible values:
	//   "HEALTHY"
	//   "UNHEALTHY"
	HealthState string `json:"healthState,omitempty"`
	// Instance: URL of the instance resource.
	Instance string `json:"instance,omitempty"`
	// IpAddress: For target pool based Network Load Balancing, it indicates the
	// forwarding rule's IP address assigned to this instance. For other types of
	// load balancing, the field indicates VM internal ip.
	IpAddress   string `json:"ipAddress,omitempty"`
	Ipv6Address string `json:"ipv6Address,omitempty"`
	// Ipv6HealthState: Health state of the IPv6 address of the instance.
	//
	// Possible values:
	//   "HEALTHY"
	//   "UNHEALTHY"
	Ipv6HealthState string `json:"ipv6HealthState,omitempty"`
	// Port: The named port of the instance group, not necessarily the port that is
	// health-checked.
	Port   int64  `json:"port,omitempty"`
	Weight string `json:"weight,omitempty"`
	// Possible values:
	//   "INVALID_WEIGHT" - The response to a Health Check probe had the HTTP
	// response header field X-Load-Balancing-Endpoint-Weight, but its content was
	// invalid (i.e., not a non-negative single-precision floating-point number in
	// decimal string representation).
	//   "MISSING_WEIGHT" - The response to a Health Check probe did not have the
	// HTTP response header field X-Load-Balancing-Endpoint-Weight.
	//   "UNAVAILABLE_WEIGHT" - This is the value when the accompanied health
	// status is either TIMEOUT (i.e.,the Health Check probe was not able to get a
	// response in time) or UNKNOWN. For the latter, it should be typically because
	// there has not been sufficient time to parse and report the weight for a new
	// backend (which is with 0.0.0.0 ip address). However, it can be also due to
	// an outage case for which the health status is explicitly reset to UNKNOWN.
	//   "WEIGHT_NONE" - This is the default value when WeightReportMode is
	// DISABLE, and is also the initial value when WeightReportMode has just
	// updated to ENABLE or DRY_RUN and there has not been sufficient time to parse
	// and report the backend weight.
	WeightError string `json:"weightError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Annotations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Annotations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthStatus) MarshalJSON() ([]byte, error) {
	type NoMethod HealthStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthStatusForNetworkEndpoint struct {
	// BackendService: URL of the backend service associated with the health state
	// of the network endpoint.
	BackendService *BackendServiceReference `json:"backendService,omitempty"`
	// ForwardingRule: URL of the forwarding rule associated with the health state
	// of the network endpoint.
	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
	// HealthCheck: URL of the health check associated with the health state of the
	// network endpoint.
	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
	// HealthCheckService: URL of the health check service associated with the
	// health state of the network endpoint.
	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
	// HealthState: Health state of the network endpoint determined based on the
	// health checks configured.
	//
	// Possible values:
	//   "DRAINING" - Endpoint is being drained.
	//   "HEALTHY" - Endpoint is healthy.
	//   "UNHEALTHY" - Endpoint is unhealthy.
	//   "UNKNOWN" - Health status of the endpoint is unknown.
	HealthState string `json:"healthState,omitempty"`
	// Ipv6HealthState: Health state of the ipv6 network endpoint determined based
	// on the health checks configured.
	//
	// Possible values:
	//   "DRAINING" - Endpoint is being drained.
	//   "HEALTHY" - Endpoint is healthy.
	//   "UNHEALTHY" - Endpoint is unhealthy.
	//   "UNKNOWN" - Health status of the endpoint is unknown.
	Ipv6HealthState string `json:"ipv6HealthState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackendService") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackendService") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
	type NoMethod HealthStatusForNetworkEndpoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Help: Provides links to documentation or for performing an out of band
// action. For example, if a quota check failed with an error indicating the
// calling project hasn't enabled the accessed service, this can contain a URL
// pointing directly to the right place in the developer console to flip the
// bit.
type Help struct {
	// Links: URL(s) pointing to additional information on handling the current
	// error.
	Links []*HelpLink `json:"links,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Links") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Links") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Help) MarshalJSON() ([]byte, error) {
	type NoMethod Help
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HelpLink: Describes a URL link.
type HelpLink struct {
	// Description: Describes what the link offers.
	Description string `json:"description,omitempty"`
	// Url: The URL of the link.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HelpLink) MarshalJSON() ([]byte, error) {
	type NoMethod HelpLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HostRule: UrlMaps A host-matching rule for a URL. If matched, will use the
// named PathMatcher to select the BackendService.
type HostRule struct {
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Hosts: The list of host patterns to match. They must be valid hostnames with
	// optional port numbers in the format host:port. * matches any string of
	// ([a-z0-9-.]*). In that case, * must be the first character, and if followed
	// by anything, the immediate following character must be either - or .. *
	// based matching is not supported when the URL map is bound to a target gRPC
	// proxy that has the validateForProxyless field set to true.
	Hosts []string `json:"hosts,omitempty"`
	// PathMatcher: The name of the PathMatcher to use to match the path portion of
	// the URL if the hostRule matches the URL's host portion.
	PathMatcher string `json:"pathMatcher,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HostRule) MarshalJSON() ([]byte, error) {
	type NoMethod HostRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpFaultAbort: Specification for how requests are aborted as part of fault
// injection.
type HttpFaultAbort struct {
	// HttpStatus: The HTTP status code used to abort the request. The value must
	// be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is
	// mapped to HTTP status code according to this mapping table. HTTP status 200
	// is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not
	// supported by Traffic Director.
	HttpStatus int64 `json:"httpStatus,omitempty"`
	// Percentage: The percentage of traffic for connections, operations, or
	// requests that is aborted as part of fault injection. The value must be from
	// 0.0 to 100.0 inclusive.
	Percentage float64 `json:"percentage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HttpStatus") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpFaultAbort) MarshalJSON() ([]byte, error) {
	type NoMethod HttpFaultAbort
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
	type NoMethod HttpFaultAbort
	var s1 struct {
		Percentage gensupport.JSONFloat64 `json:"percentage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Percentage = float64(s1.Percentage)
	return nil
}

// HttpFaultDelay: Specifies the delay introduced by the load balancer before
// forwarding the request to the backend service as part of fault injection.
type HttpFaultDelay struct {
	// FixedDelay: Specifies the value of the fixed delay interval.
	FixedDelay *Duration `json:"fixedDelay,omitempty"`
	// Percentage: The percentage of traffic for connections, operations, or
	// requests for which a delay is introduced as part of fault injection. The
	// value must be from 0.0 to 100.0 inclusive.
	Percentage float64 `json:"percentage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FixedDelay") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpFaultDelay) MarshalJSON() ([]byte, error) {
	type NoMethod HttpFaultDelay
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
	type NoMethod HttpFaultDelay
	var s1 struct {
		Percentage gensupport.JSONFloat64 `json:"percentage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Percentage = float64(s1.Percentage)
	return nil
}

// HttpFaultInjection: The specification for fault injection introduced into
// traffic to test the resiliency of clients to backend service failure. As
// part of fault injection, when clients send requests to a backend service,
// delays can be introduced by the load balancer on a percentage of requests
// before sending those request to the backend service. Similarly requests from
// clients can be aborted by the load balancer for a percentage of requests.
type HttpFaultInjection struct {
	// Abort: The specification for how client requests are aborted as part of
	// fault injection.
	Abort *HttpFaultAbort `json:"abort,omitempty"`
	// Delay: The specification for how client requests are delayed as part of
	// fault injection, before being sent to a backend service.
	Delay *HttpFaultDelay `json:"delay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Abort") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Abort") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpFaultInjection) MarshalJSON() ([]byte, error) {
	type NoMethod HttpFaultInjection
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpFilterConfig: HttpFilterConfiguration supplies additional contextual
// settings for networkservices.HttpFilter resources enabled by Traffic
// Director.
type HttpFilterConfig struct {
	// Config: The configuration needed to enable the networkservices.HttpFilter
	// resource. The configuration must be YAML formatted and only contain fields
	// defined in the protobuf identified in configTypeUrl
	Config string `json:"config,omitempty"`
	// ConfigTypeUrl: The fully qualified versioned proto3 type url of the protobuf
	// that the filter expects for its contextual settings, for example:
	// type.googleapis.com/google.protobuf.Struct
	ConfigTypeUrl string `json:"configTypeUrl,omitempty"`
	// FilterName: Name of the networkservices.HttpFilter resource this
	// configuration belongs to. This name must be known to the xDS client.
	// Example: envoy.wasm
	FilterName string `json:"filterName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Config") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Config") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpFilterConfig) MarshalJSON() ([]byte, error) {
	type NoMethod HttpFilterConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpHeaderAction: The request and response header transformations that take
// effect before the request is passed along to the selected backendService.
type HttpHeaderAction struct {
	// RequestHeadersToAdd: Headers to add to a matching request before forwarding
	// the request to the backendService.
	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
	// RequestHeadersToRemove: A list of header names for headers that need to be
	// removed from the request before forwarding the request to the
	// backendService.
	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
	// ResponseHeadersToAdd: Headers to add the response before sending the
	// response back to the client.
	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
	// ResponseHeadersToRemove: A list of header names for headers that need to be
	// removed from the response before sending the response back to the client.
	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpHeaderAction) MarshalJSON() ([]byte, error) {
	type NoMethod HttpHeaderAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpHeaderMatch: matchRule criteria for request header matches.
type HttpHeaderMatch struct {
	// ExactMatch: The value should exactly match contents of exactMatch. Only one
	// of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
	// rangeMatch must be set.
	ExactMatch string `json:"exactMatch,omitempty"`
	// HeaderName: The name of the HTTP header to match. For matching against the
	// HTTP request's authority, use a headerMatch with the header name
	// ":authority". For matching a request's method, use the headerName ":method".
	// When the URL map is bound to a target gRPC proxy that has the
	// validateForProxyless field set to true, only non-binary user-specified
	// custom metadata and the `content-type` header are supported. The following
	// transport-level headers cannot be used in header matching rules:
	// `:authority`, `:method`, `:path`, `:scheme`, `user-agent`,
	// `accept-encoding`, `content-encoding`, `grpc-accept-encoding`,
	// `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`,
	// `grpc-timeout` and `grpc-trace-bin`.
	HeaderName string `json:"headerName,omitempty"`
	// InvertMatch: If set to false, the headerMatch is considered a match if the
	// preceding match criteria are met. If set to true, the headerMatch is
	// considered a match if the preceding match criteria are NOT met. The default
	// setting is false.
	InvertMatch bool `json:"invertMatch,omitempty"`
	// PrefixMatch: The value of the header must start with the contents of
	// prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
	// presentMatch or rangeMatch must be set.
	PrefixMatch string `json:"prefixMatch,omitempty"`
	// PresentMatch: A header with the contents of headerName must exist. The match
	// takes place whether or not the request's header has a value. Only one of
	// exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch
	// must be set.
	PresentMatch bool `json:"presentMatch,omitempty"`
	// RangeMatch: The header value must be an integer and its value must be in the
	// range specified in rangeMatch. If the header does not contain an integer,
	// number or is empty, the match fails. For example for a range [-5, 0] - -3
	// will match. - 0 will not match. - 0.25 will not match. - -3someString will
	// not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
	// presentMatch or rangeMatch must be set. rangeMatch is not supported for load
	// balancers that have loadBalancingScheme set to EXTERNAL.
	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
	// RegexMatch: The value of the header must match the regular expression
	// specified in regexMatch. For more information about regular expression
	// syntax, see Syntax. For matching against a port specified in the HTTP
	// request, use a headerMatch with headerName set to PORT and a regular
	// expression that satisfies the RFC2616 Host header's port specifier. Only one
	// of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
	// rangeMatch must be set. Regular expressions can only be used when the
	// loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
	RegexMatch string `json:"regexMatch,omitempty"`
	// SuffixMatch: The value of the header must end with the contents of
	// suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
	// presentMatch or rangeMatch must be set.
	SuffixMatch string `json:"suffixMatch,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExactMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpHeaderMatch) MarshalJSON() ([]byte, error) {
	type NoMethod HttpHeaderMatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpHeaderOption: Specification determining how headers are added to
// requests or responses.
type HttpHeaderOption struct {
	// HeaderName: The name of the header.
	HeaderName string `json:"headerName,omitempty"`
	// HeaderValue: The value of the header to add.
	HeaderValue string `json:"headerValue,omitempty"`
	// Replace: If false, headerValue is appended to any values that already exist
	// for the header. If true, headerValue is set for the header, discarding any
	// values that were set for that header. The default value is false.
	Replace bool `json:"replace,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HeaderName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HeaderName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpHeaderOption) MarshalJSON() ([]byte, error) {
	type NoMethod HttpHeaderOption
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpHealthCheck: Represents a legacy HTTP Health Check resource. Legacy HTTP
// health checks are now only required by target pool-based network load
// balancers. For all other load balancers, including backend service-based
// network load balancers, and for managed instance group auto-healing, you
// must use modern (non-legacy) health checks. For more information, see Health
// checks overview .
type HttpHealthCheck struct {
	// CheckIntervalSec: How often (in seconds) to send a health check. The default
	// value is 5 seconds.
	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// HealthyThreshold: A so-far unhealthy instance will be marked healthy after
	// this many consecutive successes. The default value is 2.
	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
	// Host: The value of the host header in the HTTP health check request. If left
	// empty (default value), the public IP on behalf of which this health check is
	// performed will be used.
	Host string `json:"host,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#httpHealthCheck for
	// HTTP health checks.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Port: The TCP port number for the HTTP health check request. The default
	// value is 80.
	Port int64 `json:"port,omitempty"`
	// RequestPath: The request path of the HTTP health check request. The default
	// value is /. This field does not support query parameters. Must comply with
	// RFC3986.
	RequestPath string `json:"requestPath,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// TimeoutSec: How long (in seconds) to wait before claiming failure. The
	// default value is 5 seconds. It is invalid for timeoutSec to have greater
	// value than checkIntervalSec.
	TimeoutSec int64 `json:"timeoutSec,omitempty"`
	// UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after
	// this many consecutive failures. The default value is 2.
	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CheckIntervalSec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod HttpHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
type HttpHealthCheckList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HttpHealthCheck resources.
	Items []*HttpHealthCheck `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpHealthCheckList) MarshalJSON() ([]byte, error) {
	type NoMethod HttpHealthCheckList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpHealthCheckListWarning: [Output Only] Informational warning message.
type HttpHealthCheckListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HttpHealthCheckListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HttpHealthCheckListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HttpHealthCheckListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's query
// parameter.
type HttpQueryParameterMatch struct {
	// ExactMatch: The queryParameterMatch matches if the value of the parameter
	// exactly matches the contents of exactMatch. Only one of presentMatch,
	// exactMatch, or regexMatch must be set.
	ExactMatch string `json:"exactMatch,omitempty"`
	// Name: The name of the query parameter to match. The query parameter must
	// exist in the request, in the absence of which the request match fails.
	Name string `json:"name,omitempty"`
	// PresentMatch: Specifies that the queryParameterMatch matches if the request
	// contains the query parameter, irrespective of whether the parameter has a
	// value or not. Only one of presentMatch, exactMatch, or regexMatch must be
	// set.
	PresentMatch bool `json:"presentMatch,omitempty"`
	// RegexMatch: The queryParameterMatch matches if the value of the parameter
	// matches the regular expression specified by regexMatch. For more information
	// about regular expression syntax, see Syntax. Only one of presentMatch,
	// exactMatch, or regexMatch must be set. Regular expressions can only be used
	// when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
	RegexMatch string `json:"regexMatch,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExactMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
	type NoMethod HttpQueryParameterMatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpRedirectAction: Specifies settings for an HTTP redirect.
type HttpRedirectAction struct {
	// HostRedirect: The host that is used in the redirect response instead of the
	// one that was supplied in the request. The value must be from 1 to 255
	// characters.
	HostRedirect string `json:"hostRedirect,omitempty"`
	// HttpsRedirect: If set to true, the URL scheme in the redirected request is
	// set to HTTPS. If set to false, the URL scheme of the redirected request
	// remains the same as that of the request. This must only be set for URL maps
	// used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not
	// permitted. The default is set to false.
	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
	// PathRedirect: The path that is used in the redirect response instead of the
	// one that was supplied in the request. pathRedirect cannot be supplied
	// together with prefixRedirect. Supply one alone or neither. If neither is
	// supplied, the path of the original request is used for the redirect. The
	// value must be from 1 to 1024 characters.
	PathRedirect string `json:"pathRedirect,omitempty"`
	// PrefixRedirect: The prefix that replaces the prefixMatch specified in the
	// HttpRouteRuleMatch, retaining the remaining portion of the URL before
	// redirecting the request. prefixRedirect cannot be supplied together with
	// pathRedirect. Supply one alone or neither. If neither is supplied, the path
	// of the original request is used for the redirect. The value must be from 1
	// to 1024 characters.
	PrefixRedirect string `json:"prefixRedirect,omitempty"`
	// RedirectResponseCode: The HTTP Status code to use for this RedirectAction.
	// Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default
	// value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER
	// which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In
	// this case, the request method is retained. - PERMANENT_REDIRECT, which
	// corresponds to 308. In this case, the request method is retained.
	//
	// Possible values:
	//   "FOUND" - Http Status Code 302 - Found.
	//   "MOVED_PERMANENTLY_DEFAULT" - Http Status Code 301 - Moved Permanently.
	//   "PERMANENT_REDIRECT" - Http Status Code 308 - Permanent Redirect
	// maintaining HTTP method.
	//   "SEE_OTHER" - Http Status Code 303 - See Other.
	//   "TEMPORARY_REDIRECT" - Http Status Code 307 - Temporary Redirect
	// maintaining HTTP method.
	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
	// StripQuery: If set to true, any accompanying query portion of the original
	// URL is removed before redirecting the request. If set to false, the query
	// portion of the original URL is retained. The default is set to false.
	StripQuery bool `json:"stripQuery,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HostRedirect") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpRedirectAction) MarshalJSON() ([]byte, error) {
	type NoMethod HttpRedirectAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpRetryPolicy: The retry policy associates with HttpRouteRule
type HttpRetryPolicy struct {
	// NumRetries: Specifies the allowed number retries. This number must be > 0.
	// If not specified, defaults to 1.
	NumRetries int64 `json:"numRetries,omitempty"`
	// PerTryTimeout: Specifies a non-zero timeout per retry attempt. If not
	// specified, will use the timeout set in the HttpRouteAction field. If timeout
	// in the HttpRouteAction field is not set, this field uses the largest timeout
	// among all backend services associated with the route. Not supported when the
	// URL map is bound to a target gRPC proxy that has the validateForProxyless
	// field set to true.
	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
	// RetryConditions: Specifies one or more conditions when this retry policy
	// applies. Valid values are: - 5xx: retry is attempted if the instance or
	// endpoint responds with any 5xx response code, or if the instance or endpoint
	// does not respond at all. For example, disconnects, reset, read timeout,
	// connection failure, and refused streams. - gateway-error: Similar to 5xx,
	// but only applies to response codes 502, 503 or 504. - connect-failure: a
	// retry is attempted on failures connecting to the instance or endpoint. For
	// example, connection timeouts. - retriable-4xx: a retry is attempted if the
	// instance or endpoint responds with a 4xx response code. The only error that
	// you can retry is error code 409. - refused-stream: a retry is attempted if
	// the instance or endpoint resets the stream with a REFUSED_STREAM error code.
	// This reset type indicates that it is safe to retry. - cancelled: a retry is
	// attempted if the gRPC status code in the response header is set to
	// cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code
	// in the response header is set to deadline-exceeded. - internal: a retry is
	// attempted if the gRPC status code in the response header is set to internal.
	// - resource-exhausted: a retry is attempted if the gRPC status code in the
	// response header is set to resource-exhausted. - unavailable: a retry is
	// attempted if the gRPC status code in the response header is set to
	// unavailable. Only the following codes are supported when the URL map is
	// bound to target gRPC proxy that has validateForProxyless field set to true.
	// - cancelled - deadline-exceeded - internal - resource-exhausted -
	// unavailable
	RetryConditions []string `json:"retryConditions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NumRetries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NumRetries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpRetryPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod HttpRetryPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HttpRouteAction struct {
	// CorsPolicy: The specification for allowing client-side cross-origin
	// requests. For more information about the W3C recommendation for cross-origin
	// resource sharing (CORS), see Fetch API Living Standard. Not supported when
	// the URL map is bound to a target gRPC proxy.
	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
	// FaultInjectionPolicy: The specification for fault injection introduced into
	// traffic to test the resiliency of clients to backend service failure. As
	// part of fault injection, when clients send requests to a backend service,
	// delays can be introduced by a load balancer on a percentage of requests
	// before sending those requests to the backend service. Similarly requests
	// from clients can be aborted by the load balancer for a percentage of
	// requests. timeout and retry_policy is ignored by clients that are configured
	// with a fault_injection_policy if: 1. The traffic is generated by fault
	// injection AND 2. The fault injection is not a delay fault injection. Fault
	// injection is not supported with the classic Application Load Balancer . To
	// see which load balancers support fault injection, see Load balancing:
	// Routing and traffic management features.
	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
	// MaxStreamDuration: Specifies the maximum duration (timeout) for streams on
	// the selected route. Unlike the timeout field where the timeout duration
	// starts from the time the request has been fully processed (known as
	// *end-of-stream*), the duration in this field is computed from the beginning
	// of the stream until the response has been processed, including all retries.
	// A stream that does not complete in this duration is closed. If not
	// specified, this field uses the maximum maxStreamDuration value among all
	// backend services associated with the route. This field is only allowed if
	// the Url map is used with backend services with loadBalancingScheme set to
	// INTERNAL_SELF_MANAGED.
	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
	// RequestMirrorPolicy: Specifies the policy on how requests intended for the
	// route's backends are shadowed to a separate mirrored backend service. The
	// load balancer does not wait for responses from the shadow service. Before
	// sending traffic to the shadow service, the host / authority header is
	// suffixed with -shadow. Not supported when the URL map is bound to a target
	// gRPC proxy that has the validateForProxyless field set to true.
	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
	// RetryPolicy: Specifies the retry policy associated with this route.
	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
	// Timeout: Specifies the timeout for the selected route. Timeout is computed
	// from the time the request has been fully processed (known as
	// *end-of-stream*) up until the response has been processed. Timeout includes
	// all retries. If not specified, this field uses the largest timeout among all
	// backend services associated with the route. Not supported when the URL map
	// is bound to a target gRPC proxy that has validateForProxyless field set to
	// true.
	Timeout *Duration `json:"timeout,omitempty"`
	// UrlRewrite: The spec to modify the URL of the request, before forwarding the
	// request to the matched service. urlRewrite is the only action supported in
	// UrlMaps for classic Application Load Balancers. Not supported when the URL
	// map is bound to a target gRPC proxy that has the validateForProxyless field
	// set to true.
	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
	// WeightedBackendServices: A list of weighted backend services to send traffic
	// to when a route match occurs. The weights determine the fraction of traffic
	// that flows to their corresponding backend service. If all traffic needs to
	// go to a single backend service, there must be one weightedBackendService
	// with weight set to a non-zero number. After a backend service is identified
	// and before forwarding the request to the backend service, advanced routing
	// actions such as URL rewrites and header transformations are applied
	// depending on additional settings specified in this HttpRouteAction.
	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CorsPolicy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpRouteAction) MarshalJSON() ([]byte, error) {
	type NoMethod HttpRouteAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpRouteRule: The HttpRouteRule setting specifies how to match an HTTP
// request and the corresponding routing action that load balancing proxies
// perform.
type HttpRouteRule struct {
	// CustomErrorResponsePolicy: customErrorResponsePolicy specifies how the Load
	// Balancer returns error responses when BackendServiceor BackendBucket
	// responds with an error. If a policy for an error code is not configured for
	// the RouteRule, a policy for the error code configured in
	// pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not
	// specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy
	// configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For
	// example, consider a UrlMap with the following configuration: -
	// UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx
	// and 4xx errors - A RouteRule for /coming_soon/ is configured for the error
	// code 404. If the request is for www.myotherdomain.com and a 404 is
	// encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes
	// effect. If a 404 response is encountered for the request
	// www.example.com/current_events/, the pathMatcher's policy takes effect. If
	// however, the request for www.example.com/coming_soon/ encounters a 404, the
	// policy in RouteRule.customErrorResponsePolicy takes effect. If any of the
	// requests in this example encounter a 500 error code, the policy at
	// UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in
	// conjunction with routeRules.routeAction.retryPolicy, retries take
	// precedence. Only once all retries are exhausted, the
	// customErrorResponsePolicy is applied. While attempting a retry, if load
	// balancer is successful in reaching the service, the
	// customErrorResponsePolicy is ignored and the response from the service is
	// returned to the client. customErrorResponsePolicy is supported only for
	// global external Application Load Balancers.
	CustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"customErrorResponsePolicy,omitempty"`
	// Description: The short description conveying the intent of this routeRule.
	// The description can have a maximum length of 1024 characters.
	Description string `json:"description,omitempty"`
	// HeaderAction: Specifies changes to request and response headers that need to
	// take effect for the selected backendService. The headerAction value
	// specified here is applied before the matching pathMatchers[].headerAction
	// and after
	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backendService
	// WeightAction[].headerAction HeaderAction is not supported for load balancers
	// that have their loadBalancingScheme set to EXTERNAL. Not supported when the
	// URL map is bound to a target gRPC proxy that has validateForProxyless field
	// set to true.
	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
	// HttpFilterConfigs: Outbound route specific configuration for
	// networkservices.HttpFilter resources enabled by Traffic Director.
	// httpFilterConfigs only applies for load balancers with loadBalancingScheme
	// set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details. Not
	// supported when the URL map is bound to a target gRPC proxy that has
	// validateForProxyless field set to true.
	HttpFilterConfigs []*HttpFilterConfig `json:"httpFilterConfigs,omitempty"`
	// HttpFilterMetadata: Outbound route specific metadata supplied to
	// networkservices.HttpFilter resources enabled by Traffic Director.
	// httpFilterMetadata only applies for load balancers with loadBalancingScheme
	// set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details. The only
	// configTypeUrl supported is type.googleapis.com/google.protobuf.Struct Not
	// supported when the URL map is bound to a target gRPC proxy that has
	// validateForProxyless field set to true.
	HttpFilterMetadata []*HttpFilterConfig `json:"httpFilterMetadata,omitempty"`
	// MatchRules: The list of criteria for matching attributes of a request to
	// this routeRule. This list has OR semantics: the request matches this
	// routeRule when any of the matchRules are satisfied. However predicates
	// within a given matchRule have AND semantics. All predicates within a
	// matchRule must match for the request to match the rule.
	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
	// Priority: For routeRules within a given pathMatcher, priority determines the
	// order in which a load balancer interprets routeRules. RouteRules are
	// evaluated in order of priority, from the lowest to highest number. The
	// priority of a rule decreases as its number increases (1, 2, 3, N+1). The
	// first rule that matches the request is applied. You cannot configure two or
	// more routeRules with the same priority. Priority for each rule must be set
	// to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps,
	// which enable you to add or remove rules in the future without affecting the
	// rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series
	// of priority numbers to which you could add rules numbered from 6 to 8, 10 to
	// 11, and 13 to 15 in the future without any impact on existing rules.
	Priority int64 `json:"priority,omitempty"`
	// RouteAction: In response to a matching matchRule, the load balancer performs
	// advanced routing actions, such as URL rewrites and header transformations,
	// before forwarding the request to the selected backend. If routeAction
	// specifies any weightedBackendServices, service must not be set. Conversely
	// if service is set, routeAction cannot contain any weightedBackendServices.
	// Only one of urlRedirect, service or routeAction.weightedBackendService must
	// be set. URL maps for classic Application Load Balancers only support the
	// urlRewrite action within a route rule's routeAction.
	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
	// Service: The full or partial URL of the backend service resource to which
	// traffic is directed if this rule is matched. If routeAction is also
	// specified, advanced routing actions, such as URL rewrites, take effect
	// before sending the request to the backend. However, if service is specified,
	// routeAction cannot contain any weightedBackendServices. Conversely, if
	// routeAction specifies any weightedBackendServices, service must not be
	// specified. Only one of urlRedirect, service or
	// routeAction.weightedBackendService must be set.
	Service string `json:"service,omitempty"`
	// UrlRedirect: When this rule is matched, the request is redirected to a URL
	// specified by urlRedirect. If urlRedirect is specified, service or
	// routeAction must not be set. Not supported when the URL map is bound to a
	// target gRPC proxy.
	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomErrorResponsePolicy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomErrorResponsePolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpRouteRule) MarshalJSON() ([]byte, error) {
	type NoMethod HttpRouteRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria for
// matching requests to an HttpRouteRule. All specified criteria must be
// satisfied for a match to occur.
type HttpRouteRuleMatch struct {
	// FullPathMatch: For satisfying the matchRule condition, the path of the
	// request must exactly match the value specified in fullPathMatch after
	// removing any query parameters and anchor that may be part of the original
	// URL. fullPathMatch must be from 1 to 1024 characters. Only one of
	// prefixMatch, fullPathMatch or regexMatch must be specified.
	FullPathMatch string `json:"fullPathMatch,omitempty"`
	// HeaderMatches: Specifies a list of header match criteria, all of which must
	// match corresponding headers in the request.
	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are case
	// sensitive. The default value is false. ignoreCase must not be used with
	// regexMatch. Not supported when the URL map is bound to a target gRPC proxy.
	IgnoreCase bool `json:"ignoreCase,omitempty"`
	// MetadataFilters: Opaque filter criteria used by the load balancer to
	// restrict routing configuration to a limited set of xDS compliant clients. In
	// their xDS requests to the load balancer, xDS clients present node metadata.
	// When there is a match, the relevant routing configuration is made available
	// to those proxies. For each metadataFilter in this list, if its
	// filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels
	// must match the corresponding label provided in the metadata. If its
	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must
	// match with corresponding labels provided in the metadata. If multiple
	// metadata filters are specified, all of them need to be satisfied in order to
	// be considered a match. metadataFilters specified here is applied after those
	// specified in ForwardingRule that refers to the UrlMap this
	// HttpRouteRuleMatch belongs to. metadataFilters only applies to load
	// balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not
	// supported when the URL map is bound to a target gRPC proxy that has
	// validateForProxyless field set to true.
	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
	// PathTemplateMatch: If specified, the route is a pattern match expression
	// that must match the :path header once the query string is removed. A pattern
	// match allows you to match - The value must be between 1 and 1024 characters
	// - The pattern must start with a leading slash ("/") - There may be no more
	// than 5 operators in pattern Precisely one of prefix_match, full_path_match,
	// regex_match or path_template_match must be set.
	PathTemplateMatch string `json:"pathTemplateMatch,omitempty"`
	// PrefixMatch: For satisfying the matchRule condition, the request's path must
	// begin with the specified prefixMatch. prefixMatch must begin with a /. The
	// value must be from 1 to 1024 characters. Only one of prefixMatch,
	// fullPathMatch or regexMatch must be specified.
	PrefixMatch string `json:"prefixMatch,omitempty"`
	// QueryParameterMatches: Specifies a list of query parameter match criteria,
	// all of which must match corresponding query parameters in the request. Not
	// supported when the URL map is bound to a target gRPC proxy.
	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
	// RegexMatch: For satisfying the matchRule condition, the path of the request
	// must satisfy the regular expression specified in regexMatch after removing
	// any query parameters and anchor supplied with the original URL. For more
	// information about regular expression syntax, see Syntax. Only one of
	// prefixMatch, fullPathMatch or regexMatch must be specified. Regular
	// expressions can only be used when the loadBalancingScheme is set to
	// INTERNAL_SELF_MANAGED.
	RegexMatch string `json:"regexMatch,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FullPathMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
	type NoMethod HttpRouteRuleMatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpsHealthCheck: Represents a legacy HTTPS Health Check resource. Legacy
// HTTPS health checks have been deprecated. If you are using a target
// pool-based network load balancer, you must use a legacy HTTP (not HTTPS)
// health check. For all other load balancers, including backend service-based
// network load balancers, and for managed instance group auto-healing, you
// must use modern (non-legacy) health checks. For more information, see Health
// checks overview .
type HttpsHealthCheck struct {
	// CheckIntervalSec: How often (in seconds) to send a health check. The default
	// value is 5 seconds.
	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// HealthyThreshold: A so-far unhealthy instance will be marked healthy after
	// this many consecutive successes. The default value is 2.
	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
	// Host: The value of the host header in the HTTPS health check request. If
	// left empty (default value), the public IP on behalf of which this health
	// check is performed will be used.
	Host string `json:"host,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Type of the resource.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Port: The TCP port number for the HTTPS health check request. The default
	// value is 443.
	Port int64 `json:"port,omitempty"`
	// RequestPath: The request path of the HTTPS health check request. The default
	// value is "/". Must comply with RFC3986.
	RequestPath string `json:"requestPath,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// TimeoutSec: How long (in seconds) to wait before claiming failure. The
	// default value is 5 seconds. It is invalid for timeoutSec to have a greater
	// value than checkIntervalSec.
	TimeoutSec int64 `json:"timeoutSec,omitempty"`
	// UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after
	// this many consecutive failures. The default value is 2.
	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CheckIntervalSec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpsHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod HttpsHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
type HttpsHealthCheckList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HttpsHealthCheck resources.
	Items []*HttpsHealthCheck `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
	type NoMethod HttpsHealthCheckList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HttpsHealthCheckListWarning: [Output Only] Informational warning message.
type HttpsHealthCheckListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HttpsHealthCheckListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HttpsHealthCheckListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HttpsHealthCheckListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Image: Represents an Image resource. You can use images to create boot disks
// for your VM instances. For more information, read Images.
type Image struct {
	// Architecture: The architecture of the image. Valid values are ARM64 or
	// X86_64.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google Cloud
	// Storage (in bytes).
	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- The deprecation status associated with this image.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DiskSizeGb: Size of the image when restored onto a persistent disk (in GB).
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// EnableConfidentialCompute: Whether this image is created from a confidential
	// compute mode disk. [Output Only]: This field is not set by user, but from
	// source disk.
	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
	// Family: The name of the image family to which this image belongs. The image
	// family name can be from a publicly managed image family provided by Compute
	// Engine, or from a custom image family you create. For example,
	// centos-stream-9 is a publicly available image family. For more information,
	// see Image family best practices. When creating disks, you can specify an
	// image family instead of a specific image name. The image family always
	// returns its latest image that is not deprecated. The name of the image
	// family must comply with RFC1035.
	Family string `json:"family,omitempty"`
	// GuestOsFeatures: A list of features to enable on the guest operating system.
	// Applicable only for bootable images. To see a list of available options, see
	// the guestOSfeatures[].type parameter.
	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// ImageEncryptionKey: Encrypts the image using a customer-supplied encryption
	// key. After you encrypt an image with a customer-supplied key, you must
	// provide the same key if you use the image later (e.g. to create a disk from
	// the image). Customer-supplied encryption keys do not protect access to
	// metadata of the disk. If you do not provide an encryption key when creating
	// the image, then the disk will be encrypted using an automatically generated
	// key and you do not need to provide a key to use the image later.
	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#image for images.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this image,
	// which is essentially a hash of the labels used for optimistic locking. The
	// fingerprint is initially generated by Compute Engine and changes after every
	// request to modify or update labels. You must always provide an up-to-date
	// fingerprint hash in order to update or change labels, otherwise the request
	// will fail with error 412 conditionNotMet. To see the latest fingerprint,
	// make a get() request to retrieve an image.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels to apply to this image. These can be later modified by the
	// setLabels method.
	Labels map[string]string `json:"labels,omitempty"`
	// LicenseCodes: Integer license codes indicating which licenses are attached
	// to this image.
	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
	// Licenses: Any applicable license URI.
	Licenses []string `json:"licenses,omitempty"`
	// Locked: A flag for marketplace VM disk created from the image, which is
	// designed for marketplace VM disk to prevent the proprietary data on the disk
	// from being accessed unwantedly. The flag will be inherited by the disk
	// created from the image. The disk with locked flag set to true will be
	// prohibited from performing the operations below: - R/W or R/O disk attach -
	// Disk detach, if disk is created via create-on-create - Create images -
	// Create snapshots - Create disk clone (create disk from the current disk) The
	// image with the locked field set to true will be prohibited from performing
	// the operations below: - Create images from the current image - Update the
	// locked field for the current image The instance with at least one disk with
	// locked flag set to true will be prohibited from performing the operations
	// below: - Secondary disk attach - Create instant snapshot - Create machine
	// images - Create instance template - Delete the instance with --keep-disk
	// parameter set to true
	Locked bool `json:"locked,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// RawDisk: The parameters of the raw disk image.
	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
	// RolloutOverride: A rollout policy to apply to this image. When specified,
	// the rollout policy overrides per-zone references to the image via the
	// associated image family. The rollout policy restricts the zones where this
	// image is accessible when using a zonal image family reference. When the
	// rollout policy does not include the user specified zone, or if the zone is
	// rolled out, this image is accessible. The rollout policy for this image is
	// read-only, except for allowlisted users. This field might not be configured.
	// To view the latest non-deprecated image in a specific zone, use the
	// imageFamilyViews.get method.
	RolloutOverride *RolloutPolicy `json:"rolloutOverride,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ShieldedInstanceInitialState: Set the secure boot keys of shielded instance.
	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
	// SourceDisk: URL of the source disk used to create this image. For example,
	// the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk
	// In order to create an image, you must provide the full or partial URL of one
	// of the following: - The rawDisk.source URL - The sourceDisk URL - The
	// sourceImage URL - The sourceSnapshot URL
	SourceDisk string `json:"sourceDisk,omitempty"`
	// SourceDiskEncryptionKey: The customer-supplied encryption key of the source
	// disk. Required if the source disk is protected by a customer-supplied
	// encryption key.
	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
	// SourceDiskId: [Output Only] The ID value of the disk used to create this
	// image. This value may be used to determine whether the image was taken from
	// the current or a previous instance of a given disk name.
	SourceDiskId string `json:"sourceDiskId,omitempty"`
	// SourceImage: URL of the source image used to create this image. The
	// following are valid formats for the URL: -
	// https://www.googleapis.com/compute/v1/projects/project_id/global/
	// images/image_name - projects/project_id/global/images/image_name In order to
	// create an image, you must provide the full or partial URL of one of the
	// following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage
	// URL - The sourceSnapshot URL
	SourceImage string `json:"sourceImage,omitempty"`
	// SourceImageEncryptionKey: The customer-supplied encryption key of the source
	// image. Required if the source image is protected by a customer-supplied
	// encryption key.
	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
	// SourceImageId: [Output Only] The ID value of the image used to create this
	// image. This value may be used to determine whether the image was taken from
	// the current or a previous instance of a given image name.
	SourceImageId string `json:"sourceImageId,omitempty"`
	// SourceSnapshot: URL of the source snapshot used to create this image. The
	// following are valid formats for the URL: -
	// https://www.googleapis.com/compute/v1/projects/project_id/global/
	// snapshots/snapshot_name - projects/project_id/global/snapshots/snapshot_name
	// In order to create an image, you must provide the full or partial URL of one
	// of the following: - The rawDisk.source URL - The sourceDisk URL - The
	// sourceImage URL - The sourceSnapshot URL
	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of the
	// source snapshot. Required if the source snapshot is protected by a
	// customer-supplied encryption key.
	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to create
	// this image. This value may be used to determine whether the snapshot was
	// taken from the current or a previous instance of a given snapshot name.
	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
	// SourceType: The type of the image used to create this disk. The default and
	// only valid value is RAW.
	//
	// Possible values:
	//   "RAW" (default)
	SourceType string `json:"sourceType,omitempty"`
	// Status: [Output Only] The status of the image. An image can be used to
	// create other resources, such as instances, only after the image has been
	// successfully created and the status is set to READY. Possible values are
	// FAILED, PENDING, or READY.
	//
	// Possible values:
	//   "DELETING" - Image is deleting.
	//   "FAILED" - Image creation failed due to an error.
	//   "PENDING" - Image hasn't been created as yet.
	//   "READY" - Image has been successfully created.
	Status string `json:"status,omitempty"`
	// StorageLocations: Cloud Storage bucket storage location of the image
	// (regional or multi-regional).
	StorageLocations []string `json:"storageLocations,omitempty"`
	// UserLicenses: A list of publicly visible user-licenses. Unlike regular
	// licenses, user provided licenses can be modified after the disk is created.
	// This includes a list of URLs to the license resource. For example, to
	// provide a debian license:
	// https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-9-stretch
	UserLicenses []string `json:"userLicenses,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Architecture") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Architecture") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Image) MarshalJSON() ([]byte, error) {
	type NoMethod Image
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ImageRawDisk: The parameters of the raw disk image.
type ImageRawDisk struct {
	// ContainerType: The format used to encode and transmit the block device,
	// which should be TAR. This is just a container and transmission format and
	// not a runtime format. Provided by the client when the disk image is created.
	//
	// Possible values:
	//   "TAR"
	ContainerType string `json:"containerType,omitempty"`
	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
	// checksum of the disk image before unpackaging provided by the client when
	// the disk image is created.
	Sha1Checksum string `json:"sha1Checksum,omitempty"`
	// Source: The full Google Cloud Storage URL where the raw disk image archive
	// is stored. The following are valid formats for the URL: -
	// https://storage.googleapis.com/bucket_name/image_archive_name -
	// https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name
	// In order to create an image, you must provide the full or partial URL of one
	// of the following: - The rawDisk.source URL - The sourceDisk URL - The
	// sourceImage URL - The sourceSnapshot URL
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContainerType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContainerType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ImageRawDisk) MarshalJSON() ([]byte, error) {
	type NoMethod ImageRawDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ImageFamilyView struct {
	// Image: The latest image that is part of the specified image family in the
	// requested location, and that is not deprecated.
	Image *Image `json:"image,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Image") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Image") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ImageFamilyView) MarshalJSON() ([]byte, error) {
	type NoMethod ImageFamilyView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ImageList: Contains a list of images.
type ImageList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Image resources.
	Items []*Image `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ImageListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ImageList) MarshalJSON() ([]byte, error) {
	type NoMethod ImageList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ImageListWarning: [Output Only] Informational warning message.
type ImageListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ImageListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ImageListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ImageListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ImageListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ImageListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ImageListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InitialStateConfig: Initial State for shielded instance, these are public
// keys which are safe to store in public
type InitialStateConfig struct {
	// Dbs: The Key Database (db).
	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
	// Dbxs: The forbidden key database (dbx).
	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
	// Keks: The Key Exchange Key (KEK).
	Keks []*FileContentBuffer `json:"keks,omitempty"`
	// Pk: The Platform Key (PK).
	Pk *FileContentBuffer `json:"pk,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dbs") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dbs") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InitialStateConfig) MarshalJSON() ([]byte, error) {
	type NoMethod InitialStateConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Instance: Represents an Instance resource. An instance is a virtual machine
// that is hosted on Google Cloud Platform. For more information, read Virtual
// Machine Instances.
type Instance struct {
	// AdvancedMachineFeatures: Controls for advanced machine-related behavior
	// features.
	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
	// CanIpForward: Allows this instance to send and receive packets with
	// non-matching destination or source IPs. This is required if you plan to use
	// this instance to forward routes. For more information, see Enabling IP
	// Forwarding .
	CanIpForward               bool                        `json:"canIpForward,omitempty"`
	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
	// CpuPlatform: [Output Only] The CPU platform used by this instance.
	CpuPlatform string `json:"cpuPlatform,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DeletionProtection: Whether the resource should be protected against
	// deletion.
	DeletionProtection bool `json:"deletionProtection,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Disks: Array of disks associated with this instance. Persistent disks must
	// be created before you can assign them.
	Disks []*AttachedDisk `json:"disks,omitempty"`
	// DisplayDevice: Enables display device for the instance.
	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
	// EraseWindowsVssSignature: Specifies whether the disks restored from source
	// snapshots or source machine image should erase Windows specific VSS
	// signature.
	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
	// Fingerprint: Specifies a fingerprint for this resource, which is essentially
	// a hash of the instance's contents and used for optimistic locking. The
	// fingerprint is initially generated by Compute Engine and changes after every
	// request to modify or update the instance. You must always provide an
	// up-to-date fingerprint hash in order to update the instance. To see the
	// latest fingerprint, make get() request to the instance.
	Fingerprint string `json:"fingerprint,omitempty"`
	// GuestAccelerators: A list of the type and count of accelerator cards
	// attached to the instance.
	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
	// Hostname: Specifies the hostname of the instance. The specified hostname
	// must be RFC1035 compliant. If hostname is not specified, the default
	// hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global
	// DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal
	// DNS.
	Hostname string `json:"hostname,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InstanceEncryptionKey: Encrypts suspended data for an instance with a
	// customer-managed encryption key. If you are creating a new instance, this
	// field will encrypt the local SSD and in-memory contents of the instance
	// during the suspend operation. If you do not provide an encryption key when
	// creating the instance, then the local SSD and in-memory contents will be
	// encrypted using an automatically generated key during the suspend operation.
	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
	// KeyRevocationActionType: KeyRevocationActionType of the instance. Supported
	// options are "STOP" and "NONE". The default value is "NONE" if it is not
	// specified.
	//
	// Possible values:
	//   "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is
	// unused.
	//   "NONE" - Indicates user chose no operation.
	//   "STOP" - Indicates user chose to opt for VM shutdown on key revocation.
	KeyRevocationActionType string `json:"keyRevocationActionType,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#instance for
	// instances.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for this request, which is essentially a
	// hash of the label's contents and used for optimistic locking. The
	// fingerprint is initially generated by Compute Engine and changes after every
	// request to modify or update labels. You must always provide an up-to-date
	// fingerprint hash in order to update or change labels. To see the latest
	// fingerprint, make get() request to the instance.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels to apply to this instance. These can be later modified by the
	// setLabels method.
	Labels map[string]string `json:"labels,omitempty"`
	// LastStartTimestamp: [Output Only] Last start timestamp in RFC3339 text
	// format.
	LastStartTimestamp string `json:"lastStartTimestamp,omitempty"`
	// LastStopTimestamp: [Output Only] Last stop timestamp in RFC3339 text format.
	LastStopTimestamp string `json:"lastStopTimestamp,omitempty"`
	// LastSuspendedTimestamp: [Output Only] Last suspended timestamp in RFC3339
	// text format.
	LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"`
	// MachineType: Full or partial URL of the machine type resource to use for
	// this instance, in the format: zones/zone/machineTypes/machine-type. This is
	// provided by the client when the instance is created. For example, the
	// following is a valid partial url to a predefined machine type:
	// zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine
	// type, provide a URL to a machine type in the following format, where CPUS is
	// 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total
	// memory for this instance. Memory must be a multiple of 256 MB and must be
	// supplied in MB (e.g. 5 GB of memory is 5120 MB):
	// zones/zone/machineTypes/custom-CPUS-MEMORY For example:
	// zones/us-central1-f/machineTypes/custom-4-5120 For a full list of
	// restrictions, read the Specifications for custom machine types.
	MachineType string `json:"machineType,omitempty"`
	// Metadata: The metadata key/value pairs assigned to this instance. This
	// includes custom metadata and predefined keys.
	Metadata *Metadata `json:"metadata,omitempty"`
	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
	// Applicable values are the friendly names of CPU platforms, such as
	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
	// Name: The name of the resource, provided by the client when initially
	// creating the resource. The resource name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// NetworkInterfaces: An array of network configurations for this instance.
	// These specify how interfaces are configured to interact with other network
	// services, such as connecting to the internet. Multiple interfaces are
	// supported per instance.
	NetworkInterfaces        []*NetworkInterface       `json:"networkInterfaces,omitempty"`
	NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted as part of resource payload.
	Params *InstanceParams `json:"params,omitempty"`
	// PartnerMetadata: Partner Metadata assigned to the instance. A map from a
	// subdomain (namespace) to entries map.
	PartnerMetadata map[string]StructuredEntries `json:"partnerMetadata,omitempty"`
	// PostKeyRevocationActionType: PostKeyRevocationActionType of the instance.
	//
	// Possible values:
	//   "NOOP" - Indicates user chose no operation.
	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value
	// is unused.
	//   "SHUTDOWN" - Indicates user chose to opt for VM shutdown on key
	// revocation.
	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
	// PreservedStateSizeGb: Total amount of preserved state for SUSPENDED
	// instances. Read-only in the api.
	PreservedStateSizeGb int64 `json:"preservedStateSizeGb,omitempty,string"`
	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the VM. If
	// not specified, use INHERIT_FROM_SUBNETWORK as default.
	//
	// Possible values:
	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private IPv6
	// access to/from Google services. If specified, the subnetwork who is attached
	// to the instance's default network interface will be assigned an internal
	// IPv6 prefix if it doesn't have before.
	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from
	// VMs in this subnet to Google services. If specified, the subnetwork who is
	// attached to the instance's default network interface will be assigned an
	// internal IPv6 prefix if it doesn't have before.
	//   "INHERIT_FROM_SUBNETWORK" - Each network interface inherits
	// PrivateIpv6GoogleAccess from its subnetwork.
	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
	// ReservationAffinity: Specifies the reservations that this instance can
	// consume from.
	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
	// ResourcePolicies: Resource policies applied to this instance.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ResourceStatus: [Output Only] Specifies values set for instance attributes
	// as compared to the values requested by user in the corresponding input only
	// field.
	ResourceStatus *ResourceStatus `json:"resourceStatus,omitempty"`
	// SatisfiesPzi: [Output Only] Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// Scheduling: Sets the scheduling options for this instance.
	Scheduling *Scheduling `json:"scheduling,omitempty"`
	// SecureTags: [Input Only] Secure tags to apply to this instance. These can be
	// later modified by the update method. Maximum number of secure tags allowed
	// is 50.
	SecureTags []string `json:"secureTags,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ServiceAccounts: A list of service accounts, with their specified scopes,
	// authorized for this instance. Only one service account per VM instance is
	// supported. Service accounts generate access tokens that can be accessed
	// through the metadata server and used to authenticate applications on the
	// instance. See Service Accounts for more information.
	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
	// ServiceIntegrationSpecs: Mapping of user-defined keys to specifications for
	// service integrations. Currently only a single key-value pair is supported.
	ServiceIntegrationSpecs         map[string]ServiceIntegrationSpec `json:"serviceIntegrationSpecs,omitempty"`
	ShieldedInstanceConfig          *ShieldedInstanceConfig           `json:"shieldedInstanceConfig,omitempty"`
	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy  `json:"shieldedInstanceIntegrityPolicy,omitempty"`
	// ShieldedVmConfig: Deprecating, please use shielded_instance_config.
	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
	// ShieldedVmIntegrityPolicy: Deprecating, please use
	// shielded_instance_integrity_policy.
	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
	// SourceMachineImage: Source machine image
	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
	// SourceMachineImageEncryptionKey: Source machine image encryption key when
	// creating an instance from a machine image.
	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
	// StartRestricted: [Output Only] Whether a VM has been restricted for start
	// because Compute Engine has detected suspicious activity.
	StartRestricted bool `json:"startRestricted,omitempty"`
	// Status: [Output Only] The status of the instance. One of the following
	// values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED,
	// REPAIRING, and TERMINATED. For more information about the status of the
	// instance, see Instance life cycle.
	//
	// Possible values:
	//   "DEPROVISIONING" - The instance is halted and we are performing tear down
	// tasks like network deprogramming, releasing quota, IP, tearing down disks
	// etc.
	//   "PROVISIONING" - Resources are being allocated for the instance.
	//   "REPAIRING" - The instance is in repair.
	//   "RUNNING" - The instance is running.
	//   "STAGING" - All required resources have been allocated and the instance is
	// being started.
	//   "STOPPED" - The instance has stopped successfully.
	//   "STOPPING" - The instance is currently stopping (either being deleted or
	// killed).
	//   "SUSPENDED" - The instance has suspended.
	//   "SUSPENDING" - The instance is suspending.
	//   "TERMINATED" - The instance has stopped (either by explicit action or
	// underlying failure).
	Status string `json:"status,omitempty"`
	// StatusMessage: [Output Only] An optional, human-readable explanation of the
	// status.
	StatusMessage string `json:"statusMessage,omitempty"`
	// Tags: Tags to apply to this instance. Tags are used to identify valid
	// sources or targets for network firewalls and are specified by the client
	// during instance creation. The tags can be later modified by the setTags
	// method. Each tag within the list must comply with RFC1035. Multiple tags can
	// be specified via the 'tags.items' field.
	Tags *Tags `json:"tags,omitempty"`
	// UpcomingMaintenance: [Output Only] DEPRECATED: Please use
	// resource_status.upcoming_maintenance instead. Specifies upcoming maintenance
	// for the instance.
	UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"`
	// Zone: [Output Only] URL of the zone where the instance resides. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AdvancedMachineFeatures") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Instance) MarshalJSON() ([]byte, error) {
	type NoMethod Instance
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: An object that contains a list of instances scoped by zone.
	Items map[string]InstancesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#instanceAggregatedList
	// for aggregated lists of Instance resources.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceAggregatedListWarning: [Output Only] Informational warning message.
type InstanceAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceConsumptionData struct {
	// ConsumptionInfo: Resources consumed by the instance.
	ConsumptionInfo *InstanceConsumptionInfo `json:"consumptionInfo,omitempty"`
	// Instance: Server-defined URL for the instance.
	Instance string `json:"instance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsumptionInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsumptionInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceConsumptionData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceConsumptionData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceConsumptionInfo struct {
	// GuestCpus: The number of virtual CPUs that are available to the instance.
	GuestCpus int64 `json:"guestCpus,omitempty"`
	// LocalSsdGb: The amount of local SSD storage available to the instance,
	// defined in GiB.
	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
	// MemoryMb: The amount of physical memory available to the instance, defined
	// in MiB.
	MemoryMb int64 `json:"memoryMb,omitempty"`
	// MinNodeCpus: The minimal guaranteed number of virtual CPUs that are
	// reserved.
	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GuestCpus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GuestCpus") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceConsumptionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceConsumptionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroup: Represents an Instance Group resource. Instance Groups can be
// used to configure a target for load balancing. Instance groups can either be
// managed or unmanaged. To create managed instance groups, use the
// instanceGroupManager or regionInstanceGroupManager resource instead. Use
// zonal unmanaged instance groups if you need to apply load balancing to
// groups of heterogeneous instances or if you need to manage the instances
// yourself. You cannot create regional unmanaged instance groups. For more
// information, read Instance groups.
type InstanceGroup struct {
	// CreationTimestamp: [Output Only] The creation timestamp for this instance
	// group in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: [Output Only] The fingerprint of the named ports. The system
	// uses this fingerprint to detect conflicts when multiple users change the
	// named ports concurrently.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] A unique identifier for this instance group, generated by
	// the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] The resource type, which is always compute#instanceGroup
	// for instance groups.
	Kind string `json:"kind,omitempty"`
	// Name: The name of the instance group. The name must be 1-63 characters long,
	// and comply with RFC1035.
	Name string `json:"name,omitempty"`
	// NamedPorts:  Assigns a name to a port number. For example: {name: "http",
	// port: 80} This allows the system to reference ports by the assigned name
	// instead of a port number. Named ports can also contain multiple ports. For
	// example: [{name: "app1", port: 8080}, {name: "app1", port: 8081}, {name:
	// "app2", port: 8082}] Named ports apply to all instances in this instance
	// group.
	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
	// Network: [Output Only] The URL of the network to which all instances in the
	// instance group belong. If your instance has multiple network interfaces,
	// then the network and subnetwork fields only refer to the network and subnet
	// used by your primary interface (nic0).
	Network string `json:"network,omitempty"`
	// Region: [Output Only] The URL of the region where the instance group is
	// located (for regional resources).
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] The URL for this instance group. The server
	// generates this URL.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Size: [Output Only] The total number of instances in the instance group.
	Size int64 `json:"size,omitempty"`
	// Subnetwork: [Output Only] The URL of the subnetwork to which all instances
	// in the instance group belong. If your instance has multiple network
	// interfaces, then the network and subnetwork fields only refer to the network
	// and subnet used by your primary interface (nic0).
	Subnetwork string `json:"subnetwork,omitempty"`
	// Zone: [Output Only] The URL of the zone where the instance group is located
	// (for zonal resources).
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroup) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceGroupsScopedList resources.
	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupAggregatedList for aggregated lists of instance groups.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupAggregatedListWarning: [Output Only] Informational warning
// message.
type InstanceGroupAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupList: A list of InstanceGroup resources.
type InstanceGroupList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceGroup resources.
	Items []*InstanceGroup `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupList for instance group lists.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceGroupListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupListWarning: [Output Only] Informational warning message.
type InstanceGroupListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManager: Represents a Managed Instance Group resource. An
// instance group is a collection of VM instances that you can manage as a
// single entity. For more information, read Instance groups. For zonal Managed
// Instance Group, use the instanceGroupManagers resource. For regional Managed
// Instance Group, use the regionInstanceGroupManagers resource.
type InstanceGroupManager struct {
	// AllInstancesConfig: Specifies configuration that overrides the instance
	// template configuration for the group.
	AllInstancesConfig *InstanceGroupManagerAllInstancesConfig `json:"allInstancesConfig,omitempty"`
	// AutoHealingPolicies: The autohealing policy for this managed instance group.
	// You can specify only one value.
	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
	// BaseInstanceName: The base instance name is a prefix that you want to attach
	// to the names of all VMs in a MIG. The maximum character length is 58 and the
	// name must comply with RFC1035 format. When a VM is created in the group, the
	// MIG appends a hyphen and a random four-character string to the base instance
	// name. If you want the MIG to assign sequential numbers instead of a random
	// string, then end the base instance name with a hyphen followed by one or
	// more hash symbols. The hash symbols indicate the number of digits. For
	// example, a base instance name of "vm-###" results in "vm-001" as a VM name.
	// @pattern a-z
	// (([-a-z0-9]{0,57})|([-a-z0-9]{0,51}-#{1,10}(\\[[0-9]{1,10}\\])?))
	BaseInstanceName string `json:"baseInstanceName,omitempty"`
	// CreationTimestamp: [Output Only] The creation timestamp for this managed
	// instance group in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CurrentActions: [Output Only] The list of instance actions and the number of
	// instances in this managed instance group that are scheduled for each of
	// those actions.
	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
	// Description: An optional description of this resource.
	Description string `json:"description,omitempty"`
	// DistributionPolicy: Policy specifying the intended distribution of managed
	// instances across zones in a regional managed instance group.
	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
	// FailoverAction: The action to perform in case of zone failure. Only one
	// value is supported, NO_FAILOVER. The default is NO_FAILOVER.
	//
	// Possible values:
	//   "NO_FAILOVER"
	//   "UNKNOWN"
	FailoverAction string `json:"failoverAction,omitempty"`
	// Fingerprint: Fingerprint of this resource. This field may be used in
	// optimistic locking. It will be ignored when inserting an
	// InstanceGroupManager. An up-to-date fingerprint must be provided in order to
	// update the InstanceGroupManager, otherwise the request will fail with error
	// 412 conditionNotMet. To see the latest fingerprint, make a get() request to
	// retrieve an InstanceGroupManager.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] A unique identifier for this resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// InstanceFlexibilityPolicy: Instance flexibility allowing MIG to create VMs
	// from multiple types of machines. Instance flexibility configuration on MIG
	// overrides instance template configuration.
	InstanceFlexibilityPolicy *InstanceGroupManagerInstanceFlexibilityPolicy `json:"instanceFlexibilityPolicy,omitempty"`
	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
	InstanceGroup string `json:"instanceGroup,omitempty"`
	// InstanceLifecyclePolicy: The repair policy for this managed instance group.
	InstanceLifecyclePolicy *InstanceGroupManagerInstanceLifecyclePolicy `json:"instanceLifecyclePolicy,omitempty"`
	// InstanceTemplate: The URL of the instance template that is specified for
	// this managed instance group. The group uses this template to create all new
	// instances in the managed instance group. The templates for existing
	// instances in the group do not change unless you run recreateInstances, run
	// applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.
	InstanceTemplate string `json:"instanceTemplate,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupManager for managed instance groups.
	Kind string `json:"kind,omitempty"`
	// ListManagedInstancesResults: Pagination behavior of the listManagedInstances
	// API method for this managed instance group.
	//
	// Possible values:
	//   "PAGELESS" - (Default) Pagination is disabled for the group's
	// listManagedInstances API method. maxResults and pageToken query parameters
	// are ignored and all instances are returned in a single response.
	//   "PAGINATED" - Pagination is enabled for the group's listManagedInstances
	// API method. maxResults and pageToken query parameters are respected.
	ListManagedInstancesResults string `json:"listManagedInstancesResults,omitempty"`
	// Name: The name of the managed instance group. The name must be 1-63
	// characters long, and comply with RFC1035.
	Name string `json:"name,omitempty"`
	// NamedPorts: Named ports configured for the Instance Groups complementary to
	// this Instance Group Manager.
	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
	// Params: Input only. Additional params passed with the request, but not
	// persisted as part of resource payload.
	Params *InstanceGroupManagerParams `json:"params,omitempty"`
	// Region: [Output Only] The URL of the region where the managed instance group
	// resides (for regional resources).
	Region string `json:"region,omitempty"`
	// ResourcePolicies: Resource policies for this managed instance group.
	ResourcePolicies *InstanceGroupManagerResourcePolicies `json:"resourcePolicies,omitempty"`
	// SatisfiesPzi: [Output Only] Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] The URL for this managed instance group. The server
	// defines this URL.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ServiceAccount: The service account to be used as credentials for all
	// operations performed by the managed instance group on instances. The service
	// accounts needs all permissions required to create and delete instances. By
	// default, the service account
	// {projectNumber}@cloudservices.gserviceaccount.com is used.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// StandbyPolicy: Standby policy for stopped and suspended instances.
	StandbyPolicy *InstanceGroupManagerStandbyPolicy `json:"standbyPolicy,omitempty"`
	// StatefulPolicy: Stateful configuration for this Instanced Group Manager
	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
	// Status: [Output Only] The status of this managed instance group.
	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
	// TargetPools: The URLs for all TargetPool resources to which instances in the
	// instanceGroup field are added. The target pools automatically apply to all
	// of the instances in the managed instance group.
	TargetPools []string `json:"targetPools,omitempty"`
	// TargetSize: The target number of running instances for this managed instance
	// group. You can reduce this number by using the instanceGroupManager
	// deleteInstances or abandonInstances methods. Resizing the group also changes
	// this number.
	TargetSize int64 `json:"targetSize,omitempty"`
	// TargetSizeUnit: The unit of measure for the target size.
	//
	// Possible values:
	//   "INSTANCE" - [Default] TargetSize is the target number of instances.
	//   "VCPU" - TargetSize is the target count of vCPUs of VMs.
	TargetSizeUnit string `json:"targetSizeUnit,omitempty"`
	// TargetStoppedSize: The target number of stopped instances for this managed
	// instance group. This number changes when you: - Stop instance using the
	// stopInstances method or start instances using the startInstances method. -
	// Manually change the targetStoppedSize using the update method.
	TargetStoppedSize int64 `json:"targetStoppedSize,omitempty"`
	// TargetSuspendedSize: The target number of suspended instances for this
	// managed instance group. This number changes when you: - Suspend instance
	// using the suspendInstances method or resume instances using the
	// resumeInstances method. - Manually change the targetSuspendedSize using the
	// update method.
	TargetSuspendedSize int64 `json:"targetSuspendedSize,omitempty"`
	// UpdatePolicy: The update policy for this managed instance group.
	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
	// Versions: Specifies the instance templates used by this managed instance
	// group to create instances. Each version is defined by an instanceTemplate
	// and a name. Every version can appear at most once per instance group. This
	// field overrides the top-level instanceTemplate field. Read more about the
	// relationships between these fields. Exactly one version must leave the
	// targetSize field unset. That version will be applied to all remaining
	// instances. For more information, read about canary updates.
	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
	// Zone: [Output Only] The URL of a zone where the managed instance group is
	// located (for zonal resources).
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AllInstancesConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllInstancesConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManager) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManager
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerActionsSummary struct {
	// Abandoning: [Output Only] The total number of instances in the managed
	// instance group that are scheduled to be abandoned. Abandoning an instance
	// removes it from the managed instance group without deleting it.
	Abandoning int64 `json:"abandoning,omitempty"`
	// Creating: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be created or are currently being created. If
	// the group fails to create any of these instances, it tries again until it
	// creates the instance successfully. If you have disabled creation retries,
	// this field will not be populated; instead, the creatingWithoutRetries field
	// will be populated.
	Creating int64 `json:"creating,omitempty"`
	// CreatingAtomically: [Output Only] The number of instances that the managed
	// instance group will attempt to create atomically, in a batch mode. If the
	// desired count of instances can not be created, entire batch will be deleted
	// and the group will decrease its targetSize value accordingly.
	CreatingAtomically int64 `json:"creatingAtomically,omitempty"`
	// CreatingWithoutRetries: [Output Only] The number of instances that the
	// managed instance group will attempt to create. The group attempts to create
	// each instance only once. If the group fails to create any of these
	// instances, it decreases the group's targetSize value accordingly.
	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
	// Deleting: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be deleted or are currently being deleted.
	Deleting int64 `json:"deleting,omitempty"`
	// None: [Output Only] The number of instances in the managed instance group
	// that are running and have no scheduled actions.
	None int64 `json:"none,omitempty"`
	// Queuing: [Output Only] The number of instances that the managed instance
	// group is currently queuing.
	Queuing int64 `json:"queuing,omitempty"`
	// Recreating: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be recreated or are currently being being
	// recreated. Recreating an instance deletes the existing root persistent disk
	// and creates a new disk from the image that is defined in the instance
	// template.
	Recreating int64 `json:"recreating,omitempty"`
	// Refreshing: [Output Only] The number of instances in the managed instance
	// group that are being reconfigured with properties that do not require a
	// restart or a recreate action. For example, setting or removing target pools
	// for the instance.
	Refreshing int64 `json:"refreshing,omitempty"`
	// Restarting: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be restarted or are currently being restarted.
	Restarting int64 `json:"restarting,omitempty"`
	// Resuming: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be resumed or are currently being resumed.
	Resuming int64 `json:"resuming,omitempty"`
	// Starting: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be started or are currently being started.
	Starting int64 `json:"starting,omitempty"`
	// Stopping: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be stopped or are currently being stopped.
	Stopping int64 `json:"stopping,omitempty"`
	// Suspending: [Output Only] The number of instances in the managed instance
	// group that are scheduled to be suspended or are currently being suspended.
	Suspending int64 `json:"suspending,omitempty"`
	// Verifying: [Output Only] The number of instances in the managed instance
	// group that are being verified. See the managedInstances[].currentAction
	// property in the listManagedInstances method documentation.
	Verifying int64 `json:"verifying,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Abandoning") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Abandoning") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerActionsSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceGroupManagersScopedList resources.
	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupManagerAggregatedList for an aggregated list of managed
	// instance groups.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerAggregatedListWarning: [Output Only] Informational
// warning message.
type InstanceGroupManagerAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerAllInstancesConfig struct {
	// Properties: Properties to set on all instances in the group. You can add or
	// modify properties using the instanceGroupManagers.patch or
	// regionInstanceGroupManagers.patch. After setting allInstancesConfig on the
	// group, you must update the group's instances to apply the configuration. To
	// apply the configuration, set the group's updatePolicy.type field to use
	// proactive updates or use the applyUpdatesToInstances method.
	Properties *InstancePropertiesPatch `json:"properties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Properties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Properties") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerAllInstancesConfig) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerAllInstancesConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerAutoHealingPolicy struct {
	// AutoHealingTriggers: Restricts what triggers autohealing.
	AutoHealingTriggers *InstanceGroupManagerAutoHealingPolicyAutoHealingTriggers `json:"autoHealingTriggers,omitempty"`
	// HealthCheck: The URL for the health check that signals autohealing.
	HealthCheck string `json:"healthCheck,omitempty"`
	// InitialDelaySec: The initial delay is the number of seconds that a new VM
	// takes to initialize and run its startup script. During a VM's initial delay
	// period, the MIG ignores unsuccessful health checks because the VM might be
	// in the startup process. This prevents the MIG from prematurely recreating a
	// VM. If the health check receives a healthy response during the initial
	// delay, it indicates that the startup process is complete and the VM is
	// ready. The value of initial delay must be between 0 and 3600 seconds. The
	// default value is 0.
	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
	// MaxUnavailable: Maximum number of instances that can be unavailable when
	// autohealing. When 'percent' is used, the value is rounded if necessary. The
	// instance is considered available if all of the following conditions are
	// satisfied: 1. Instance's status is RUNNING. 2. Instance's currentAction is
	// NONE (in particular its liveness health check result was observed to be
	// HEALTHY at least once as it passed VERIFYING). 3. There is no outgoing
	// action on an instance triggered by IGM. By default, number of concurrently
	// autohealed instances is smaller than the managed instance group target size.
	// However, if a zonal managed instance group has only one instance, or a
	// regional managed instance group has only one instance per zone, autohealing
	// will recreate these instances when they become unhealthy.
	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoHealingTriggers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoHealingTriggers") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerAutoHealingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerAutoHealingPolicyAutoHealingTriggers struct {
	// OnHealthCheck: If you have configured an application-based health check for
	// the group, this field controls whether to trigger VM autohealing based on a
	// failed health check. Valid values are: - ON (default): The group recreates
	// running VMs that fail the application-based health check. - OFF: When set to
	// OFF, you can still observe instance health state, but the group does not
	// recreate VMs that fail the application-based health check. This is useful
	// for troubleshooting and setting up your health check configuration.
	//
	// Possible values:
	//   "OFF" - When set to OFF, you can still observe instance health state, but
	// the group does not recreate VMs that fail the application-based health
	// check. This is useful for troubleshooting and setting up your health check
	// configuration.
	//   "ON" - (Default) The group recreates running VMs that fail the group's
	// application-based health check.
	OnHealthCheck string `json:"onHealthCheck,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OnHealthCheck") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OnHealthCheck") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerAutoHealingPolicyAutoHealingTriggers) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerAutoHealingPolicyAutoHealingTriggers
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerInstanceFlexibilityPolicy struct {
	// InstanceSelectionLists: Named instance selections configuring properties
	// that the group will use when creating new VMs.
	InstanceSelectionLists map[string]InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection `json:"instanceSelectionLists,omitempty"`
	// InstanceSelections: Named instance selections configuring properties that
	// the group will use when creating new VMs.
	InstanceSelections map[string]InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection `json:"instanceSelections,omitempty"`
	// ProvisioningModelMix: Provisioning model configuration used by this managed
	// instance group to create instances.
	ProvisioningModelMix *InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix `json:"provisioningModelMix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceSelectionLists") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceSelectionLists") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerInstanceFlexibilityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerInstanceFlexibilityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection struct {
	// MachineTypes: Full machine-type names, e.g. "n1-standard-16".
	MachineTypes []string `json:"machineTypes,omitempty"`
	// Rank: Preference of this instance selection. Lower number means higher
	// preference. MIG will first try to create a VM based on the machine-type with
	// lowest rank and fallback to next rank based on availability. Machine types
	// and instance selections with the same rank have the same preference.
	Rank int64 `json:"rank,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MachineTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix struct {
	// StandardCapacityBase: The base capacity that will always use Standard VMs to
	// avoid risk of more preemption than the minimum capacity user needs. MIG will
	// create only Standard VMs until it reaches standard_capacity_base and only
	// then will start using standard_capacity_percent_above_base to mix Spot with
	// Standard VMs.
	StandardCapacityBase int64 `json:"standardCapacityBase,omitempty"`
	// StandardCapacityPercentAboveBase: The percentage of target capacity that
	// should use Standard VM. The remaining percentage will use Spot VMs. The
	// percentage applies only to the capacity above standard_capacity_base.
	StandardCapacityPercentAboveBase int64 `json:"standardCapacityPercentAboveBase,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StandardCapacityBase") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StandardCapacityBase") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerInstanceLifecyclePolicy struct {
	// DefaultActionOnFailure: The action that a MIG performs on a failed or an
	// unhealthy VM. A VM is marked as unhealthy when the application running on
	// that VM fails a health check. Valid values are - REPAIR (default): MIG
	// automatically repairs a failed or an unhealthy VM by recreating it. For more
	// information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not
	// repair a failed or an unhealthy VM.
	//
	// Possible values:
	//   "DELETE" - MIG deletes a failed or an unhealthy VM. Deleting the VM
	// decreases the target size of the MIG.
	//   "DO_NOTHING" - MIG does not repair a failed or an unhealthy VM.
	//   "REPAIR" - (Default) MIG automatically repairs a failed or an unhealthy VM
	// by recreating it. For more information, see About repairing VMs in a MIG.
	DefaultActionOnFailure string `json:"defaultActionOnFailure,omitempty"`
	// ForceUpdateOnRepair: A bit indicating whether to forcefully apply the
	// group's latest configuration when repairing a VM. Valid options are: - NO
	// (default): If configuration updates are available, they are not forcefully
	// applied during repair. Instead, configuration updates are applied according
	// to the group's update policy. - YES: If configuration updates are available,
	// they are applied during repair.
	//
	// Possible values:
	//   "NO"
	//   "YES"
	ForceUpdateOnRepair string `json:"forceUpdateOnRepair,omitempty"`
	// MetadataBasedReadinessSignal: The configuration for metadata based readiness
	// signal sent by the instance during initialization when stopping / suspending
	// an instance. The Instance Group Manager will wait for a signal that
	// indicates successful initialization before stopping / suspending an
	// instance. If a successful readiness signal is not sent before timeout, the
	// corresponding instance will not be stopped / suspended. Instead, an error
	// will be visible in the lastAttempt.errors field of the managed instance in
	// the listmanagedinstances method. If metadataBasedReadinessSignal.timeoutSec
	// is unset, the Instance Group Manager will directly proceed to suspend / stop
	// instances, skipping initialization on them.
	MetadataBasedReadinessSignal *InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal `json:"metadataBasedReadinessSignal,omitempty"`
	// OnFailedHealthCheck: The action that a MIG performs on an unhealthy VM. A VM
	// is marked as unhealthy when the application running on that VM fails a
	// health check. Valid values are: - DEFAULT_ACTION (default): The MIG performs
	// the same action as specified in the
	// instanceLifecyclePolicy.defaultActionOnFailure field. If the
	// defaultActionOnFailure field is set to REPAIR, then the MIG repairs
	// unhealthy VMs. If the defaultActionOnFailure field is set to DO_NOTHING,
	// then the MIG doesn't repair unhealthy VMs. - REPAIR: The MIG repairs
	// unhealthy VMs by recreating it. - DO_NOTHING: The MIG doesn't repair
	// unhealthy VMs. For more information, see About repairing VMs in a MIG.
	//
	// Possible values:
	//   "DEFAULT_ACTION" - (Default) The MIG performs the same action as specified
	// in the instanceLifecyclePolicy.defaultActionOnFailure field. If the
	// defaultActionOnFailure field is set to REPAIR, then the MIG repairs
	// unhealthy VMs. If the defaultActionOnFailure field is set to DO_NOTHING,
	// then the MIG doesn't repair unhealthy VMs.
	//   "DO_NOTHING" - The MIG doesn't repair unhealthy VMs.
	//   "REPAIR" - The MIG repairs unhealthy VMs by recreating it.
	OnFailedHealthCheck string `json:"onFailedHealthCheck,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultActionOnFailure") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultActionOnFailure") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerInstanceLifecyclePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerInstanceLifecyclePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal struct {
	// TimeoutSec: The number of seconds to wait for a readiness signal during
	// initialization before timing out.
	TimeoutSec int64 `json:"timeoutSec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TimeoutSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TimeoutSec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerList: [Output Only] A list of managed instance groups.
type InstanceGroupManagerList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceGroupManager resources.
	Items []*InstanceGroupManager `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupManagerList for a list of managed instance groups.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerListWarning: [Output Only] Informational warning
// message.
type InstanceGroupManagerListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerParams: Input only additional params for instance group
// manager creation.
type InstanceGroupManagerParams struct {
	// ResourceManagerTags: Resource manager tags to bind to the managed instance
	// group. The tags are key-value pairs. Keys must be in the format tagKeys/123
	// and values in the format tagValues/456. For more information, see Manage
	// tags for resources.
	ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceManagerTags") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerParams) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerResizeRequest: InstanceGroupManagerResizeRequest
// represents a request to create a number of VMs: either immediately or by
// queuing the request for the specified time. This resize request is nested
// under InstanceGroupManager and the VMs created by this request are added to
// the owning InstanceGroupManager.
type InstanceGroupManagerResizeRequest struct {
	// Count: This field is deprecated, please use resize_by instead. The count of
	// instances to create as part of this resize request.
	Count int64 `json:"count,omitempty"`
	// CreationTimestamp: [Output Only] The creation timestamp for this resize
	// request in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] A unique identifier for this resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupManagerResizeRequest for resize requests.
	Kind string `json:"kind,omitempty"`
	// Name: The name of this resize request. The name must be 1-63 characters
	// long, and comply with RFC1035.
	Name string `json:"name,omitempty"`
	// QueuingPolicy: This field is deprecated, ResizeRequests would not be
	// provisioned immediately and would stay in the queue until explicitly
	// cancelled. When set, defines queing parameters for the requested deferred
	// capacity. When unset, the request starts provisioning immediately, or fails
	// if immediate provisioning is not possible.
	QueuingPolicy *QueuingPolicy `json:"queuingPolicy,omitempty"`
	// Region: [Output Only] The URL of a region where the resize request is
	// located. Populated only for regional resize requests.
	Region string `json:"region,omitempty"`
	// RequestedRunDuration: Requested run duration for instances that will be
	// created by this request. At the end of the run duration instance will be
	// deleted.
	RequestedRunDuration *Duration `json:"requestedRunDuration,omitempty"`
	// ResizeBy: The number of instances to be created by this resize request. The
	// group's target size will be increased by this number.
	ResizeBy int64 `json:"resizeBy,omitempty"`
	// SelfLink: [Output Only] The URL for this resize request. The server defines
	// this URL.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// State: [Output only] Current state of the request.
	//
	// Possible values:
	//   "ACCEPTED" - The request was created successfully and was accepted for
	// provisioning when the capacity becomes available.
	//   "CANCELLED" - The request is cancelled.
	//   "CREATING" - Resize request is being created and may still fail creation.
	//   "DELETING" - The value is deprecated. ResizeRequests would not change
	// state while being deleted. The request is being deleted.
	//   "FAILED" - The request failed before or during provisioning. If the
	// request fails during provisioning, any VMs that were created during
	// provisioning are rolled back and removed from the MIG.
	//   "PROVISIONING" - The value is deprecated. ResizeRequests would stay in the
	// ACCEPTED state during provisioning attempts. The target resource(s) are
	// being provisioned.
	//   "STATE_UNSPECIFIED" - Default value. This value should never be returned.
	//   "SUCCEEDED" - The request succeeded.
	State string `json:"state,omitempty"`
	// Status: [Output only] Status of the request.
	Status *InstanceGroupManagerResizeRequestStatus `json:"status,omitempty"`
	// Zone: [Output Only] The URL of a zone where the resize request is located.
	// Populated only for zonal resize requests.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResizeRequestStatus struct {
	// Error: [Output only] Fatal errors encountered during the queueing or
	// provisioning phases of the ResizeRequest that caused the transition to the
	// FAILED state. Contrary to the last_attempt errors, this field is final and
	// errors are never removed from here, as the ResizeRequest is not going to
	// retry.
	Error *InstanceGroupManagerResizeRequestStatusError `json:"error,omitempty"`
	// LastAttempt: [Output only] Information about the last attempt to fulfill the
	// request. The value is temporary since the ResizeRequest can retry, as long
	// as it's still active and the last attempt value can either be cleared or
	// replaced with a different error. Since ResizeRequest retries infrequently,
	// the value may be stale and no longer show an active problem. The value is
	// cleared when ResizeRequest transitions to the final state (becomes
	// inactive). If the final state is FAILED the error describing it will be
	// storred in the "error" field only.
	LastAttempt *InstanceGroupManagerResizeRequestStatusLastAttempt `json:"lastAttempt,omitempty"`
	// QueuingPolicy: This field is deprecated, setting queueing policy is no
	// longer supported. Constraints for the time when the instances start
	// provisioning. Always exposed as absolute time.
	QueuingPolicy *QueuingPolicy `json:"queuingPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Error") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerResizeRequestStatusError: [Output only] Fatal errors
// encountered during the queueing or provisioning phases of the ResizeRequest
// that caused the transition to the FAILED state. Contrary to the last_attempt
// errors, this field is final and errors are never removed from here, as the
// ResizeRequest is not going to retry.
type InstanceGroupManagerResizeRequestStatusError struct {
	// Errors: [Output Only] The array of errors encountered while processing this
	// operation.
	Errors []*InstanceGroupManagerResizeRequestStatusErrorErrors `json:"errors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatusError) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatusError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResizeRequestStatusErrorErrors struct {
	// Code: [Output Only] The error type identifier for this error.
	Code string `json:"code,omitempty"`
	// ErrorDetails: [Output Only] An optional list of messages that contain the
	// error details. There is a set of defined message types to use for providing
	// details.The syntax depends on the error code. For example, QuotaExceededInfo
	// will have details when the error code is QUOTA_EXCEEDED.
	ErrorDetails []*InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails `json:"errorDetails,omitempty"`
	// Location: [Output Only] Indicates the field in the request that caused the
	// error. This property is optional.
	Location string `json:"location,omitempty"`
	// Message: [Output Only] An optional, human-readable error message.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatusErrorErrors) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatusErrorErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails struct {
	ErrorInfo        *ErrorInfo         `json:"errorInfo,omitempty"`
	Help             *Help              `json:"help,omitempty"`
	LocalizedMessage *LocalizedMessage  `json:"localizedMessage,omitempty"`
	QuotaInfo        *QuotaExceededInfo `json:"quotaInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResizeRequestStatusLastAttempt struct {
	// Error: Errors that prevented the ResizeRequest to be fulfilled.
	Error *InstanceGroupManagerResizeRequestStatusLastAttemptError `json:"error,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Error") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatusLastAttempt) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatusLastAttempt
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerResizeRequestStatusLastAttemptError: Errors that
// prevented the ResizeRequest to be fulfilled.
type InstanceGroupManagerResizeRequestStatusLastAttemptError struct {
	// Errors: [Output Only] The array of errors encountered while processing this
	// operation.
	Errors []*InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors `json:"errors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatusLastAttemptError) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors struct {
	// Code: [Output Only] The error type identifier for this error.
	Code string `json:"code,omitempty"`
	// ErrorDetails: [Output Only] An optional list of messages that contain the
	// error details. There is a set of defined message types to use for providing
	// details.The syntax depends on the error code. For example, QuotaExceededInfo
	// will have details when the error code is QUOTA_EXCEEDED.
	ErrorDetails []*InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails `json:"errorDetails,omitempty"`
	// Location: [Output Only] Indicates the field in the request that caused the
	// error. This property is optional.
	Location string `json:"location,omitempty"`
	// Message: [Output Only] An optional, human-readable error message.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails struct {
	ErrorInfo        *ErrorInfo         `json:"errorInfo,omitempty"`
	Help             *Help              `json:"help,omitempty"`
	LocalizedMessage *LocalizedMessage  `json:"localizedMessage,omitempty"`
	QuotaInfo        *QuotaExceededInfo `json:"quotaInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerResizeRequestsListResponse: [Output Only] A list of
// resize requests.
type InstanceGroupManagerResizeRequestsListResponse struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of resize request resources.
	Items []*InstanceGroupManagerResizeRequest `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#instanceGroupManagerResizeRequestList for a list of resize requests.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceGroupManagerResizeRequestsListResponseWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerResizeRequestsListResponseWarning: [Output Only]
// Informational warning message.
type InstanceGroupManagerResizeRequestsListResponseWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupManagerResizeRequestsListResponseWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResizeRequestsListResponseWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResizeRequestsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResizeRequestsListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerResourcePolicies struct {
	// WorkloadPolicy: The URL of the workload policy that is specified for this
	// managed instance group. It can be a full or partial URL. For example, the
	// following are all valid URLs to a workload policy: -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /resourcePolicies/resourcePolicy -
	// projects/project/regions/region/resourcePolicies/resourcePolicy -
	// regions/region/resourcePolicies/resourcePolicy
	WorkloadPolicy string `json:"workloadPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "WorkloadPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WorkloadPolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerResourcePolicies) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerResourcePolicies
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStandbyPolicy struct {
	// InitialDelaySec: Specifies the number of seconds that the MIG should wait to
	// suspend or stop a VM after that VM was created. The initial delay gives the
	// initialization script the time to prepare your VM for a quick scale out. The
	// value of initial delay must be between 0 and 3600 seconds. The default value
	// is 0.
	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
	// Mode: Defines how a MIG resumes or starts VMs from a standby pool when the
	// group scales out. The default mode is `MANUAL`.
	//
	// Possible values:
	//   "MANUAL" - MIG does not automatically resume or start VMs in the standby
	// pool when the group scales out.
	//   "SCALE_OUT_POOL" - MIG automatically resumes or starts VMs in the standby
	// pool when the group scales out, and replenishes the standby pool afterwards.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InitialDelaySec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InitialDelaySec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerStandbyPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStandbyPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatus struct {
	// AllInstancesConfig: [Output only] Status of all-instances configuration on
	// the group.
	AllInstancesConfig *InstanceGroupManagerStatusAllInstancesConfig `json:"allInstancesConfig,omitempty"`
	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
	// instance group manager.
	Autoscaler string `json:"autoscaler,omitempty"`
	// IsStable: [Output Only] A bit indicating whether the managed instance group
	// is in a stable state. A stable state means that: none of the instances in
	// the managed instance group is currently undergoing any type of change (for
	// example, creation, restart, or deletion); no future changes are scheduled
	// for instances in the managed instance group; and the managed instance group
	// itself is not being modified.
	IsStable bool `json:"isStable,omitempty"`
	// Stateful: [Output Only] Stateful status of the given Instance Group Manager.
	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
	// VersionTarget: [Output Only] A status of consistency of Instances' versions
	// with their target version specified by version field on Instance Group
	// Manager.
	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllInstancesConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllInstancesConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusAllInstancesConfig struct {
	// CurrentRevision: [Output Only] Current all-instances configuration revision.
	// This value is in RFC3339 text format.
	CurrentRevision string `json:"currentRevision,omitempty"`
	// Effective: [Output Only] A bit indicating whether this configuration has
	// been applied to all managed instances in the group.
	Effective bool `json:"effective,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentRevision") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentRevision") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerStatusAllInstancesConfig) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusAllInstancesConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusStateful struct {
	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
	// instance group has stateful configuration, that is, if you have configured
	// any items in a stateful policy or in per-instance configs. The group might
	// report that it has no stateful configuration even when there is still some
	// preserved state on a managed instance, for example, if you have deleted all
	// PICs but not yet applied those deletions.
	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
	// IsStateful: [Output Only] A bit indicating whether the managed instance
	// group has stateful configuration, that is, if you have configured any items
	// in a stateful policy or in per-instance configs. The group might report that
	// it has no stateful configuration even when there is still some preserved
	// state on a managed instance, for example, if you have deleted all PICs but
	// not yet applied those deletions. This field is deprecated in favor of
	// has_stateful_config.
	IsStateful bool `json:"isStateful,omitempty"`
	// PerInstanceConfigs: [Output Only] Status of per-instance configurations on
	// the instances.
	PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HasStatefulConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusStateful
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct {
	// AllEffective: A bit indicating if all of the group's per-instance
	// configurations (listed in the output of a listPerInstanceConfigs API call)
	// have status EFFECTIVE or there are no per-instance-configs.
	AllEffective bool `json:"allEffective,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllEffective") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllEffective") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusVersionTarget struct {
	// IsReached: [Output Only] A bit indicating whether version target has been
	// reached in this managed instance group, i.e. all instances are in their
	// target version. Instances' target version are specified by version field on
	// Instance Group Manager.
	IsReached bool `json:"isReached,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IsReached") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IsReached") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusVersionTarget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerUpdatePolicy struct {
	// InstanceRedistributionType: The instance redistribution policy for regional
	// managed instance groups. Valid values are: - PROACTIVE (default): The group
	// attempts to maintain an even distribution of VM instances across zones in
	// the region. - NONE: For non-autoscaled groups, proactive redistribution is
	// disabled.
	//
	// Possible values:
	//   "NONE" - No action is being proactively performed in order to bring this
	// IGM to its target instance distribution.
	//   "PROACTIVE" - This IGM will actively converge to its target instance
	// distribution.
	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
	// MaxSurge: The maximum number of instances that can be created above the
	// specified targetSize during the update process. This value can be either a
	// fixed number or, if the group has 10 or more instances, a percentage. If you
	// set a percentage, the number of instances is rounded if necessary. The
	// default value for maxSurge is a fixed value equal to the number of zones in
	// which the managed instance group operates. At least one of either maxSurge
	// or maxUnavailable must be greater than 0. Learn more about maxSurge.
	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
	// MaxUnavailable: The maximum number of instances that can be unavailable
	// during the update process. An instance is considered available if all of the
	// following conditions are satisfied: - The instance's status is RUNNING. - If
	// there is a health check on the instance group, the instance's health check
	// status must be HEALTHY at least once. If there is no health check on the
	// group, then the instance only needs to have a status of RUNNING to be
	// considered available. This value can be either a fixed number or, if the
	// group has 10 or more instances, a percentage. If you set a percentage, the
	// number of instances is rounded if necessary. The default value for
	// maxUnavailable is a fixed value equal to the number of zones in which the
	// managed instance group operates. At least one of either maxSurge or
	// maxUnavailable must be greater than 0. Learn more about maxUnavailable.
	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
	// MinReadySec: Minimum number of seconds to wait for after a newly created
	// instance becomes available. This value must be from range [0, 3600].
	MinReadySec int64 `json:"minReadySec,omitempty"`
	// MinimalAction: Minimal action to be taken on an instance. Use this option to
	// minimize disruption as much as possible or to apply a more disruptive action
	// than is necessary. - To limit disruption as much as possible, set the
	// minimal action to REFRESH. If your update requires a more disruptive action,
	// Compute Engine performs the necessary action to execute the update. - To
	// apply a more disruptive action than is strictly necessary, set the minimal
	// action to RESTART or REPLACE. For example, Compute Engine does not need to
	// restart a VM to change its metadata. But if your application reads instance
	// metadata only when a VM is restarted, you can set the minimal action to
	// RESTART in order to pick up metadata changes.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MinimalAction string `json:"minimalAction,omitempty"`
	// MostDisruptiveAllowedAction: Most disruptive action that is allowed to be
	// taken on an instance. You can specify either NONE to forbid any actions,
	// REFRESH to avoid restarting the VM and to limit disruption as much as
	// possible. RESTART to allow actions that can be applied without instance
	// replacing or REPLACE to allow all possible actions. If the Updater
	// determines that the minimal update action needed is more disruptive than
	// most disruptive allowed action you specify it will not perform the update at
	// all.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
	// ReplacementMethod: What action should be used to replace instances. See
	// minimal_action.REPLACE
	//
	// Possible values:
	//   "RECREATE" - Instances will be recreated (with the same name)
	//   "SUBSTITUTE" - Default option: instances will be deleted and created (with
	// a new name)
	ReplacementMethod string `json:"replacementMethod,omitempty"`
	// Type: The type of update process. You can specify either PROACTIVE so that
	// the MIG automatically updates VMs to the latest configurations or
	// OPPORTUNISTIC so that you can select the VMs that you want to update.
	//
	// Possible values:
	//   "OPPORTUNISTIC" - MIG will apply new configurations to existing VMs only
	// when you selectively target specific or all VMs to be updated.
	//   "PROACTIVE" - MIG will automatically apply new configurations to all or a
	// subset of existing VMs and also to new VMs that are added to the group.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceRedistributionType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceRedistributionType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerUpdatePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerVersion struct {
	// InstanceTemplate: The URL of the instance template that is specified for
	// this managed instance group. The group uses this template to create new
	// instances in the managed instance group until the `targetSize` for this
	// version is reached. The templates for existing instances in the group do not
	// change unless you run recreateInstances, run applyUpdatesToInstances, or set
	// the group's updatePolicy.type to PROACTIVE; in those cases, existing
	// instances are updated until the `targetSize` for this version is reached.
	InstanceTemplate string `json:"instanceTemplate,omitempty"`
	// Name: Name of the version. Unique among all versions in the scope of this
	// managed instance group.
	Name string `json:"name,omitempty"`
	// Tag: Tag describing the version. Used to trigger rollout of a target version
	// even if instance_template remains unchanged. Deprecated in favor of 'name'.
	Tag string `json:"tag,omitempty"`
	// TargetSize: Specifies the intended number of instances to be created from
	// the instanceTemplate. The final number of instances created from the
	// template will be equal to: - If expressed as a fixed number, the minimum of
	// either targetSize.fixed or instanceGroupManager.targetSize is used. - if
	// expressed as a percent, the targetSize would be (targetSize.percent/100 *
	// InstanceGroupManager.targetSize) If there is a remainder, the number is
	// rounded. If unset, this version will update any remaining instances not
	// updated by another version. Read Starting a canary update for more
	// information.
	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceTemplate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerVersion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersAbandonInstancesRequest struct {
	// Instances: The URLs of one or more instances to abandon. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersAbandonInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagersApplyUpdatesRequest:
// InstanceGroupManagers.applyUpdatesToInstances
type InstanceGroupManagersApplyUpdatesRequest struct {
	// AllInstances: Flag to update all instances instead of specified list of
	// “instances”. If the flag is set to true then the instances may not be
	// specified in the request.
	AllInstances bool `json:"allInstances,omitempty"`
	// Instances: The list of URLs of one or more instances for which you want to
	// apply updates. Each URL can be a full URL or a partial URL, such as
	// zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// MaximalAction: The maximal action that should be performed on the instances.
	// By default REPLACE. This field is deprecated, please use
	// most_disruptive_allowed_action.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MaximalAction string `json:"maximalAction,omitempty"`
	// MinimalAction: The minimal action that you want to perform on each instance
	// during the update: - REPLACE: At minimum, delete the instance and create it
	// again. - RESTART: Stop the instance and start it again. - REFRESH: Do not
	// stop the instance and limit disruption as much as possible. - NONE: Do not
	// disrupt the instance at all. By default, the minimum action is NONE. If your
	// update requires a more disruptive action than you set with this flag, the
	// necessary action is performed to execute the update.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MinimalAction string `json:"minimalAction,omitempty"`
	// MostDisruptiveAllowedAction: The most disruptive action that you want to
	// perform on each instance during the update: - REPLACE: Delete the instance
	// and create it again. - RESTART: Stop the instance and start it again. -
	// REFRESH: Do not stop the instance and limit disruption as much as possible.
	// - NONE: Do not disrupt the instance at all. By default, the most disruptive
	// allowed action is REPLACE. If your update requires a more disruptive action
	// than you set with this flag, the update request will fail.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllInstances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllInstances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersApplyUpdatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagersCreateInstancesRequest:
// InstanceGroupManagers.createInstances
type InstanceGroupManagersCreateInstancesRequest struct {
	// Instances: [Required] List of specifications of per-instance configs.
	Instances []*PerInstanceConfig `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersCreateInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersDeleteInstancesRequest struct {
	// InstanceNames: The list of instance names to delete. Queued instances do not
	// have URL and can be deleted only by name. You cannot specify both URLs and
	// names in a single request.
	InstanceNames []string `json:"instanceNames,omitempty"`
	// Instances: The URLs of one or more instances to delete. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued
	// instances do not have URL and can be deleted only by name. One cannot
	// specify both URLs and names in a single request.
	Instances []string `json:"instances,omitempty"`
	// SkipInstancesOnValidationError: Specifies whether the request should proceed
	// despite the inclusion of instances that are not members of the group or that
	// are already in the process of being deleted or abandoned. If this field is
	// set to `false` and such an instance is specified in the request, the
	// operation fails. The operation always fails if the request contains a
	// malformed instance URL or a reference to an instance that exists in a zone
	// or region other than the group's zone or region.
	SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceNames") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceNames") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersDeleteInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagersDeletePerInstanceConfigsReq:
// InstanceGroupManagers.deletePerInstanceConfigs
type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
	// Names: The list of instance names for which we want to delete per-instance
	// configs on this managed instance group.
	Names []string `json:"names,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Names") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Names") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersListErrorsResponse struct {
	// Items: [Output Only] The list of errors of the managed instance group.
	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Items") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Items") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersListErrorsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersListManagedInstancesResponse struct {
	// ManagedInstances: [Output Only] The list of instances in the managed
	// instance group.
	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManagedInstances") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersListManagedInstancesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersListPerInstanceConfigsResp struct {
	// Items: [Output Only] The list of PerInstanceConfig.
	Items []*PerInstanceConfig `json:"items,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Items") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Items") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
// Informational warning message.
type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagersPatchPerInstanceConfigsReq:
// InstanceGroupManagers.patchPerInstanceConfigs
type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
	// PerInstanceConfigs: The list of per-instance configurations to insert or
	// patch on this managed instance group.
	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersRecreateInstancesRequest struct {
	// Instances: The URLs of one or more instances to recreate. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersRecreateInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersResizeAdvancedRequest struct {
	// NoCreationRetries: If this flag is true, the managed instance group attempts
	// to create all instances initiated by this resize request only once. If there
	// is an error during creation, the managed instance group does not retry
	// create this instance, and we will decrease the targetSize of the request
	// instead. If the flag is false, the group attempts to recreate each instance
	// continuously until it succeeds. This flag matters only in the first attempt
	// of creation of an instance. After an instance is successfully created while
	// this flag is enabled, the instance behaves the same way as all the other
	// instances created with a regular resize request. In particular, if a running
	// instance dies unexpectedly at a later time and needs to be recreated, this
	// mode does not affect the recreation behavior in that scenario. This flag is
	// applicable only to the current resize request. It does not influence other
	// resize requests in any way. You can see which instances is being creating in
	// which mode by calling the get or listManagedInstances API.
	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
	// TargetSize: The number of running instances that the managed instance group
	// should maintain at any given time. The group automatically adds or removes
	// instances to maintain the number of instances specified by this parameter.
	TargetSize int64 `json:"targetSize,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NoCreationRetries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NoCreationRetries") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersResizeAdvancedRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersResumeInstancesRequest struct {
	// Instances: The URLs of one or more instances to resume. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersResumeInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersResumeInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersScopedList struct {
	// InstanceGroupManagers: [Output Only] The list of managed instance groups
	// that are contained in the specified project and zone.
	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
	// Warning: [Output Only] The warning that replaces the list of managed
	// instance groups when the list is empty.
	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceGroupManagers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagersScopedListWarning: [Output Only] The warning that
// replaces the list of managed instance groups when the list is empty.
type InstanceGroupManagersScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersSetAutoHealingRequest struct {
	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersSetAutoHealingRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersSetInstanceTemplateRequest struct {
	// InstanceTemplate: The URL of the instance template that is specified for
	// this managed instance group. The group uses this template to create all new
	// instances in the managed instance group. The templates for existing
	// instances in the group do not change unless you run recreateInstances, run
	// applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.
	InstanceTemplate string `json:"instanceTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceTemplate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersSetTargetPoolsRequest struct {
	// Fingerprint: The fingerprint of the target pools information. Use this
	// optional property to prevent conflicts when multiple users change the target
	// pools settings concurrently. Obtain the fingerprint with the
	// instanceGroupManagers.get method. Then, include the fingerprint in your
	// request to ensure that you do not overwrite changes that were applied from
	// another concurrent request.
	Fingerprint string `json:"fingerprint,omitempty"`
	// TargetPools: The list of target pool URLs that instances in this managed
	// instance group belong to. The managed instance group applies these target
	// pools to all of the instances in the group. Existing instances and new
	// instances in the group all receive these target pool settings.
	TargetPools []string `json:"targetPools,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersStartInstancesRequest struct {
	// Instances: The URLs of one or more instances to start. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersStartInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersStartInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersStopInstancesRequest struct {
	// ForceStop: If this flag is set to true, the Instance Group Manager will
	// proceed to stop the instances, skipping initialization on them.
	ForceStop bool `json:"forceStop,omitempty"`
	// Instances: The URLs of one or more instances to stop. This can be a full URL
	// or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ForceStop") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ForceStop") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersStopInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersStopInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagersSuspendInstancesRequest struct {
	// ForceSuspend: If this flag is set to true, the Instance Group Manager will
	// proceed to suspend the instances, skipping initialization on them.
	ForceSuspend bool `json:"forceSuspend,omitempty"`
	// Instances: The URLs of one or more instances to suspend. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ForceSuspend") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ForceSuspend") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersSuspendInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersSuspendInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagersUpdatePerInstanceConfigsReq:
// InstanceGroupManagers.updatePerInstanceConfigs
type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
	// PerInstanceConfigs: The list of per-instance configurations to insert or
	// patch on this managed instance group.
	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsAddInstancesRequest struct {
	// Instances: The list of instances to add to the instance group.
	Instances []*InstanceReference `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsAddInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsListInstances struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceWithNamedPorts resources.
	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupsListInstances for the list of instances in the
	// specified instance group.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsListInstances
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupsListInstancesWarning: [Output Only] Informational warning
// message.
type InstanceGroupsListInstancesWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsListInstancesWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsListInstancesWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsListInstancesWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsListInstancesRequest struct {
	// InstanceState: A filter for the state of the instances in the instance
	// group. Valid options are ALL or RUNNING. If you do not specify this
	// parameter the list includes all instances regardless of their state.
	//
	// Possible values:
	//   "ALL" - Includes all instances in the generated list regardless of their
	// state.
	//   "RUNNING" - Includes instances in the generated list only if they have a
	// RUNNING state.
	InstanceState string `json:"instanceState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceState") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsListInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsRemoveInstancesRequest struct {
	// Instances: The list of instances to remove from the instance group.
	Instances []*InstanceReference `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsRemoveInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsScopedList struct {
	// InstanceGroups: [Output Only] The list of instance groups that are contained
	// in this scope.
	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
	// Warning: [Output Only] An informational warning that replaces the list of
	// instance groups when the list is empty.
	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceGroups") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupsScopedListWarning: [Output Only] An informational warning that
// replaces the list of instance groups when the list is empty.
type InstanceGroupsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupsSetNamedPortsRequest struct {
	// Fingerprint: The fingerprint of the named ports information for this
	// instance group. Use this optional property to prevent conflicts when
	// multiple users change the named ports settings concurrently. Obtain the
	// fingerprint with the instanceGroups.get method. Then, include the
	// fingerprint in your request to ensure that you do not overwrite changes that
	// were applied from another concurrent request. A request with an incorrect
	// fingerprint will fail with error 412 conditionNotMet.
	Fingerprint string `json:"fingerprint,omitempty"`
	// NamedPorts: The list of named ports to set for this instance group.
	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupsSetNamedPortsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceList: Contains a list of instances.
type InstanceList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Instance resources.
	Items []*Instance `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#instanceList for lists
	// of Instance resources.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceListWarning: [Output Only] Informational warning message.
type InstanceListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceListReferrers: Contains a list of instance referrers.
type InstanceListReferrers struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Reference resources.
	Items []*Reference `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#instanceListReferrers
	// for lists of Instance referrers.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceListReferrers) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceListReferrers
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceListReferrersWarning: [Output Only] Informational warning message.
type InstanceListReferrersWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceListReferrersWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceListReferrersWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceListReferrersWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceManagedByIgmError struct {
	// Error: [Output Only] Contents of the error.
	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
	// InstanceActionDetails: [Output Only] Details of the instance action that
	// triggered this error. May be null, if the error was not caused by an action
	// on an instance. This field is optional.
	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
	// Timestamp: [Output Only] The time that this error occurred. This value is in
	// RFC3339 text format.
	Timestamp string `json:"timestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Error") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceManagedByIgmError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceManagedByIgmErrorInstanceActionDetails struct {
	// Action: [Output Only] Action that managed instance group was executing on
	// the instance when the error occurred. Possible values:
	//
	// Possible values:
	//   "ABANDONING" - The managed instance group is abandoning this instance. The
	// instance will be removed from the instance group and from any target pools
	// that are associated with this group.
	//   "CREATING" - The managed instance group is creating this instance. If the
	// group fails to create this instance, it will try again until it is
	// successful.
	//   "CREATING_ATOMICALLY" - The managed instance group is creating this
	// instance atomically.
	//   "CREATING_WITHOUT_RETRIES" - The managed instance group is attempting to
	// create this instance only once. If the group fails to create this instance,
	// it does not try again and the group's targetSize value is decreased.
	//   "DELETING" - The managed instance group is permanently deleting this
	// instance.
	//   "NONE" - The managed instance group has not scheduled any actions for this
	// instance.
	//   "QUEUING" - The managed instance group is queuing this instance.
	//   "RECREATING" - The managed instance group is recreating this instance.
	//   "REFRESHING" - The managed instance group is applying configuration
	// changes to the instance without stopping it. For example, the group can
	// update the target pool list for an instance without stopping that instance.
	//   "RESTARTING" - The managed instance group is restarting this instance.
	//   "RESUMING" - The managed instance group is resuming this instance.
	//   "STARTING" - The managed instance group is starting this instance.
	//   "STOPPING" - The managed instance group is stopping this instance.
	//   "SUSPENDING" - The managed instance group is suspending this instance.
	//   "VERIFYING" - The managed instance group is verifying this already created
	// instance. Verification happens every time the instance is (re)created or
	// restarted and consists of: 1. Waiting until health check specified as part
	// of this managed instance group's autohealing policy reports HEALTHY. Note:
	// Applies only if autohealing policy has a health check specified 2. Waiting
	// for addition verification steps performed as post-instance creation (subject
	// to future extensions).
	Action string `json:"action,omitempty"`
	// Instance: [Output Only] The URL of the instance. The URL can be set even if
	// the instance has not yet been created.
	Instance string `json:"instance,omitempty"`
	// Version: [Output Only] Version this instance was created from, or was being
	// created from, but the creation failed. Corresponds to one of the versions
	// that were set on the Instance Group Manager resource at the time this
	// instance was being created.
	Version *ManagedInstanceVersion `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceManagedByIgmErrorManagedInstanceError struct {
	// Code: [Output Only] Error code.
	Code string `json:"code,omitempty"`
	// Message: [Output Only] Error message.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceMoveRequest struct {
	// DestinationZone: The URL of the destination zone to move the instance. This
	// can be a full or partial URL. For example, the following are all valid URLs
	// to a zone: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone -
	// projects/project/zones/zone - zones/zone
	DestinationZone string `json:"destinationZone,omitempty"`
	// TargetInstance: The URL of the target instance to move. This can be a full
	// or partial URL. For example, the following are all valid URLs to an
	// instance: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /instances/instance - projects/project/zones/zone/instances/instance -
	// zones/zone/instances/instance
	TargetInstance string `json:"targetInstance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationZone") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceMoveRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceMoveRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceParams: Additional instance params.
type InstanceParams struct {
	// ResourceManagerTags: Resource manager tags to be bound to the instance. Tag
	// keys and values have the same definition as resource manager tags. Keys must
	// be in the format `tagKeys/{tag_key_id}`, and values are in the format
	// `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.
	ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceManagerTags") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceParams) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceProperties struct {
	// AdvancedMachineFeatures: Controls for advanced machine-related behavior
	// features. Note that for MachineImage, this is not supported yet.
	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
	// CanIpForward: Enables instances created based on these properties to send
	// packets with source IP addresses other than their own and receive packets
	// with destination IP addresses other than their own. If these instances will
	// be used as an IP gateway or it will be set as the next-hop in a Route
	// resource, specify true. If unsure, leave this set to false. See the Enable
	// IP forwarding documentation for more information.
	CanIpForward bool `json:"canIpForward,omitempty"`
	// ConfidentialInstanceConfig: Specifies the Confidential Instance options.
	// Note that for MachineImage, this is not supported yet.
	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
	// Description: An optional text description for the instances that are created
	// from these properties.
	Description string `json:"description,omitempty"`
	// Disks: An array of disks that are associated with the instances that are
	// created from these properties.
	Disks []*AttachedDisk `json:"disks,omitempty"`
	// DisplayDevice: Display Device properties to enable support for remote
	// display products like: Teradici, VNC and TeamViewer Note that for
	// MachineImage, this is not supported yet.
	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
	// GuestAccelerators: A list of guest accelerator cards' type and count to use
	// for instances created from these properties.
	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
	// KeyRevocationActionType: KeyRevocationActionType of the instance. Supported
	// options are "STOP" and "NONE". The default value is "NONE" if it is not
	// specified.
	//
	// Possible values:
	//   "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is
	// unused.
	//   "NONE" - Indicates user chose no operation.
	//   "STOP" - Indicates user chose to opt for VM shutdown on key revocation.
	KeyRevocationActionType string `json:"keyRevocationActionType,omitempty"`
	// Labels: Labels to apply to instances that are created from these properties.
	Labels map[string]string `json:"labels,omitempty"`
	// MachineType: The machine type to use for instances that are created from
	// these properties. This field only accepts a machine type name, for example
	// `n2-standard-4`. If you use the machine type full or partial URL, for
	// example
	// `projects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4`,
	// the request will result in an `INTERNAL_ERROR`.
	MachineType string `json:"machineType,omitempty"`
	// Metadata: The metadata key/value pairs to assign to instances that are
	// created from these properties. These pairs can consist of custom metadata or
	// predefined keys. See Project and instance metadata for more information.
	Metadata *Metadata `json:"metadata,omitempty"`
	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The instance
	// may be scheduled on the specified or newer cpu/platform. Applicable values
	// are the friendly names of CPU platforms, such as minCpuPlatform: "Intel
	// Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read
	// Specifying a Minimum CPU Platform.
	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
	// NetworkInterfaces: An array of network access configurations for this
	// interface.
	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
	// NetworkPerformanceConfig: Note that for MachineImage, this is not supported
	// yet.
	NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
	// PartnerMetadata: Partner Metadata assigned to the instance properties. A map
	// from a subdomain (namespace) to entries map.
	PartnerMetadata map[string]StructuredEntries `json:"partnerMetadata,omitempty"`
	// PostKeyRevocationActionType: PostKeyRevocationActionType of the instance.
	//
	// Possible values:
	//   "NOOP" - Indicates user chose no operation.
	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value
	// is unused.
	//   "SHUTDOWN" - Indicates user chose to opt for VM shutdown on key
	// revocation.
	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs. If not
	// specified, use INHERIT_FROM_SUBNETWORK as default. Note that for
	// MachineImage, this is not supported yet.
	//
	// Possible values:
	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private IPv6
	// access to/from Google services. If specified, the subnetwork who is attached
	// to the instance's default network interface will be assigned an internal
	// IPv6 prefix if it doesn't have before.
	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from
	// VMs in this subnet to Google services. If specified, the subnetwork who is
	// attached to the instance's default network interface will be assigned an
	// internal IPv6 prefix if it doesn't have before.
	//   "INHERIT_FROM_SUBNETWORK" - Each network interface inherits
	// PrivateIpv6GoogleAccess from its subnetwork.
	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
	// ReservationAffinity: Specifies the reservations that instances can consume
	// from. Note that for MachineImage, this is not supported yet.
	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
	// ResourceManagerTags: Resource manager tags to be bound to the instance. Tag
	// keys and values have the same definition as resource manager tags. Keys must
	// be in the format `tagKeys/{tag_key_id}`, and values are in the format
	// `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.
	ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"`
	// ResourcePolicies: Resource policies (names, not URLs) applied to instances
	// created from these properties. Note that for MachineImage, this is not
	// supported yet.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// Scheduling: Specifies the scheduling options for the instances that are
	// created from these properties.
	Scheduling *Scheduling `json:"scheduling,omitempty"`
	// SecureTags: [Input Only] Secure tags to apply to this instance. Maximum
	// number of secure tags allowed is 50. Note that for MachineImage, this is not
	// supported yet.
	SecureTags []string `json:"secureTags,omitempty"`
	// ServiceAccounts: A list of service accounts with specified scopes. Access
	// tokens for these service accounts are available to the instances that are
	// created from these properties. Use metadata queries to obtain the access
	// tokens for these instances.
	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
	// ServiceIntegrationSpecs: Mapping of user defined keys to
	// ServiceIntegrationSpec.
	ServiceIntegrationSpecs map[string]ServiceIntegrationSpec `json:"serviceIntegrationSpecs,omitempty"`
	// ShieldedInstanceConfig: Note that for MachineImage, this is not supported
	// yet.
	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
	// ShieldedVmConfig: Specifies the Shielded VM options for the instances that
	// are created from these properties.
	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
	// Tags: A list of tags to apply to the instances that are created from these
	// properties. The tags identify valid sources or targets for network
	// firewalls. The setTags method can modify this list of tags. Each tag within
	// the list must comply with RFC1035.
	Tags *Tags `json:"tags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvancedMachineFeatures") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceProperties) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceProperties
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstancePropertiesPatch: Represents the change that you want to make to the
// instance properties.
type InstancePropertiesPatch struct {
	// Labels: The label key-value pairs that you want to patch onto the instance.
	Labels map[string]string `json:"labels,omitempty"`
	// Metadata: The metadata key-value pairs that you want to patch onto the
	// instance. For more information, see Project and instance metadata.
	Metadata map[string]string `json:"metadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Labels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancePropertiesPatch) MarshalJSON() ([]byte, error) {
	type NoMethod InstancePropertiesPatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceReference struct {
	// Instance: The URL for a specific instance. @required
	// compute.instancegroups.addInstances/removeInstances
	Instance string `json:"instance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instance") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instance") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceReference) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceSettings: Represents a Instance Settings resource. You can use
// instance settings to configure default settings for Compute Engine VM
// instances. For example, you can use it to configure default machine type of
// Compute Engine VM instances.
type InstanceSettings struct {
	// Email: Email address of the service account.
	Email string `json:"email,omitempty"`
	// Fingerprint: Specifies a fingerprint for instance settings, which is
	// essentially a hash of the instance settings resource's contents and used for
	// optimistic locking. The fingerprint is initially generated by Compute Engine
	// and changes after every request to modify or update the instance settings
	// resource. You must always provide an up-to-date fingerprint hash in order to
	// update or change the resource, otherwise the request will fail with error
	// 412 conditionNotMet. To see the latest fingerprint, make a get() request to
	// retrieve the resource.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#instance_settings
	// for instance settings.
	Kind string `json:"kind,omitempty"`
	// Metadata: The metadata key/value pairs assigned to all the instances in the
	// corresponding scope.
	Metadata *InstanceSettingsMetadata `json:"metadata,omitempty"`
	// Zone: [Output Only] URL of the zone where the resource resides You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Email") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceSettings) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceSettingsMetadata struct {
	// Items: A metadata key/value items map. The total size of all keys and values
	// must be less than 512KB.
	Items map[string]string `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#metadata for
	// metadata.
	Kind string `json:"kind,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Items") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Items") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceSettingsMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceSettingsMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceTemplate: Represents an Instance Template resource. Google Compute
// Engine has two Instance Template resources: * Global
// (/compute/docs/reference/rest/alpha/instanceTemplates) * Regional
// (/compute/docs/reference/rest/alpha/regionInstanceTemplates) You can reuse a
// global instance template in different regions whereas you can use a regional
// instance template in a specified region only. If you want to reduce
// cross-region dependency or achieve data residency, use a regional instance
// template. To create VMs, managed instance groups, and reservations, you can
// use either global or regional instance templates. For more information, read
// Instance Templates.
type InstanceTemplate struct {
	// CreationTimestamp: [Output Only] The creation timestamp for this instance
	// template in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] A unique identifier for this instance template. The server
	// defines this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceTemplate for instance templates.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Properties: The instance properties for this instance template.
	Properties *InstanceProperties `json:"properties,omitempty"`
	// Region: [Output Only] URL of the region where the instance template resides.
	// Only applicable for regional resources.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] The URL for this instance template. The server
	// defines this URL.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SourceInstance: The source instance used to create the template. You can
	// provide this as a partial or full URL to the resource. For example, the
	// following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /instances/instance - projects/project/zones/zone/instances/instance
	SourceInstance string `json:"sourceInstance,omitempty"`
	// SourceInstanceParams: The source instance params to use to create this
	// instance template.
	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplate) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplate
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceTemplateAggregatedList: Contains a list of
// InstanceTemplatesScopedList.
type InstanceTemplateAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceTemplatesScopedList resources.
	Items map[string]InstanceTemplatesScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceTemplateAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplateAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplateAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceTemplateAggregatedListWarning: [Output Only] Informational warning
// message.
type InstanceTemplateAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceTemplateAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplateAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceTemplateAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplateAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceTemplateList: A list of instance templates.
type InstanceTemplateList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceTemplate resources.
	Items []*InstanceTemplate `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceTemplatesListResponse for instance template lists.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplateList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplateList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceTemplateListWarning: [Output Only] Informational warning message.
type InstanceTemplateListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplateListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceTemplateListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplateListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceTemplatesScopedList struct {
	// InstanceTemplates: [Output Only] A list of instance templates that are
	// contained within the specified project and zone.
	InstanceTemplates []*InstanceTemplate `json:"instanceTemplates,omitempty"`
	// Warning: [Output Only] An informational warning that replaces the list of
	// instance templates when the list is empty.
	Warning *InstanceTemplatesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceTemplates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceTemplates") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplatesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplatesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceTemplatesScopedListWarning: [Output Only] An informational warning
// that replaces the list of instance templates when the list is empty.
type InstanceTemplatesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstanceTemplatesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplatesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceTemplatesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceTemplatesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceWithNamedPorts struct {
	// Instance: [Output Only] The URL of the instance.
	Instance string `json:"instance,omitempty"`
	// NamedPorts: [Output Only] The named ports that belong to this instance
	// group.
	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
	// Status: [Output Only] The status of the instance.
	//
	// Possible values:
	//   "DEPROVISIONING" - The instance is halted and we are performing tear down
	// tasks like network deprogramming, releasing quota, IP, tearing down disks
	// etc.
	//   "PROVISIONING" - Resources are being allocated for the instance.
	//   "REPAIRING" - The instance is in repair.
	//   "RUNNING" - The instance is running.
	//   "STAGING" - All required resources have been allocated and the instance is
	// being started.
	//   "STOPPED" - The instance has stopped successfully.
	//   "STOPPING" - The instance is currently stopping (either being deleted or
	// killed).
	//   "SUSPENDED" - The instance has suspended.
	//   "SUSPENDING" - The instance is suspending.
	//   "TERMINATED" - The instance has stopped (either by explicit action or
	// underlying failure).
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instance") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instance") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceWithNamedPorts
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesAddResourcePoliciesRequest struct {
	// ResourcePolicies: Resource policies to be added to this instance.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesAddResourcePoliciesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesBulkInsertOperationMetadata struct {
	// PerLocationStatus: Status information per location (location name is key).
	// Example key: zones/us-central1-a
	PerLocationStatus map[string]BulkInsertOperationStatus `json:"perLocationStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PerLocationStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PerLocationStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesBulkInsertOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesBulkInsertOperationMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesGetEffectiveFirewallsResponse struct {
	// FirewallPolicys: Effective firewalls from firewall policies.
	FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
	// Firewalls: Effective firewalls on the instance.
	Firewalls []*Firewall `json:"firewalls,omitempty"`
	// OrganizationFirewalls: Effective firewalls from organization policies.
	OrganizationFirewalls []*InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FirewallPolicys") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesGetEffectiveFirewallsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
	// DisplayName: [Output Only] Deprecated, please use short name instead. The
	// display name of the firewall policy.
	DisplayName string `json:"displayName,omitempty"`
	// Name: [Output Only] The name of the firewall policy.
	Name string `json:"name,omitempty"`
	// Priority: [Output only] Priority of firewall policy association. Not
	// applicable for type=HIERARCHY.
	Priority int64 `json:"priority,omitempty"`
	// Rules: The rules that apply to the network.
	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
	// ShortName: [Output Only] The short name of the firewall policy.
	ShortName string `json:"shortName,omitempty"`
	// Type: [Output Only] The type of the firewall policy. Can be one of
	// HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.
	//
	// Possible values:
	//   "HIERARCHY"
	//   "NETWORK"
	//   "NETWORK_REGIONAL"
	//   "SYSTEM_GLOBAL"
	//   "SYSTEM_REGIONAL"
	//   "UNSPECIFIED"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A pruned
// SecurityPolicy containing ID and any applicable firewall rules.
type InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
	// Id: The unique identifier for the security policy. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Rules: The rules that apply to the network.
	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesRemoveResourcePoliciesRequest struct {
	// ResourcePolicies: Resource policies to be removed from this instance.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesRemoveResourcePoliciesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesResumeRequest struct {
	// Disks: Array of disks associated with this instance that are protected with
	// a customer-supplied encryption key. In order to resume the instance, the
	// disk url and its corresponding key must be provided. If the disk is not
	// protected with a customer-supplied encryption key it should not be
	// specified.
	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
	// InstanceEncryptionKey: Decrypts data associated with an instance that is
	// protected with a customer-supplied encryption key. If the instance you are
	// starting is protected with a customer-supplied encryption key, the correct
	// key must be provided otherwise the instance resume will not succeed.
	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disks") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesResumeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesResumeRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesScopedList struct {
	// Instances: [Output Only] A list of instances contained in this scope.
	Instances []*Instance `json:"instances,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// instances when the list is empty.
	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstancesScopedListWarning: [Output Only] Informational warning which
// replaces the list of instances when the list is empty.
type InstancesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesSetLabelsRequest struct {
	// LabelFingerprint: Fingerprint of the previous set of labels for this
	// resource, used to prevent conflicts. Provide the latest fingerprint value
	// when making a request to add or change labels.
	LabelFingerprint string            `json:"labelFingerprint,omitempty"`
	Labels           map[string]string `json:"labels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LabelFingerprint") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesSetLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesSetMachineResourcesRequest struct {
	// GuestAccelerators: A list of the type and count of accelerator cards
	// attached to the instance.
	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GuestAccelerators") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GuestAccelerators") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesSetMachineResourcesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesSetMachineTypeRequest struct {
	// MachineType: Full or partial URL of the machine type resource. See Machine
	// Types for a full list of machine types. For example:
	// zones/us-central1-f/machineTypes/n1-standard-1
	MachineType string `json:"machineType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MachineType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MachineType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesSetMachineTypeRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesSetMinCpuPlatformRequest struct {
	// MinCpuPlatform: Minimum cpu/platform this instance should be started at.
	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MinCpuPlatform") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesSetMinCpuPlatformRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesSetNameRequest struct {
	// CurrentName: The current name of this resource, used to prevent conflicts.
	// Provide the latest name when making a request to change name.
	CurrentName string `json:"currentName,omitempty"`
	// Name: The name to be applied to the instance. Needs to be RFC 1035
	// compliant.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesSetNameRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesSetNameRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesSetSecurityPolicyRequest struct {
	// NetworkInterfaces: The network interfaces that the security policy will be
	// applied to. Network interfaces use the nicN naming format. You can only set
	// a security policy for network interfaces with an access config.
	NetworkInterfaces []string `json:"networkInterfaces,omitempty"`
	// SecurityPolicy: A full or partial URL to a security policy to add to this
	// instance. If this field is set to an empty string it will remove the
	// associated security policy.
	SecurityPolicy string `json:"securityPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkInterfaces") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkInterfaces") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesSetSecurityPolicyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesSetSecurityPolicyRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesSetServiceAccountRequest struct {
	// Email: Email address of the service account.
	Email string `json:"email,omitempty"`
	// Scopes: The list of scopes to be made available for this service account.
	Scopes []string `json:"scopes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Email") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesSetServiceAccountRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesStartWithEncryptionKeyRequest struct {
	// Disks: Array of disks associated with this instance that are protected with
	// a customer-supplied encryption key. In order to start the instance, the disk
	// url and its corresponding key must be provided. If the disk is not protected
	// with a customer-supplied encryption key it should not be specified.
	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
	// InstanceEncryptionKey: Decrypts data associated with an instance that is
	// protected with a customer-supplied encryption key. If the instance you are
	// starting is protected with a customer-supplied encryption key, the correct
	// key must be provided otherwise the instance start will not succeed.
	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disks") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesStartWithEncryptionKeyRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstantSnapshot: Represents a InstantSnapshot resource. You can use instant
// snapshots to create disk rollback points quickly..
type InstantSnapshot struct {
	// Architecture: [Output Only] The architecture of the instant snapshot. Valid
	// values are ARM64 or X86_64.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// GuestFlush: Whether to attempt an application consistent instant snapshot by
	// informing the OS to prepare for the snapshot process.
	GuestFlush bool `json:"guestFlush,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#instantSnapshot for
	// InstantSnapshot resources.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// InstantSnapshot, which is essentially a hash of the labels set used for
	// optimistic locking. The fingerprint is initially generated by Compute Engine
	// and changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a InstantSnapshot.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels to apply to this InstantSnapshot. These can be later modified
	// by the setLabels method. Label values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] URL of the region where the instant snapshot resides.
	// You must specify this field as part of the HTTP request URL. It is not
	// settable as a field in the request body.
	Region string `json:"region,omitempty"`
	// ResourceStatus: [Output Only] Status information for the instant snapshot
	// resource.
	ResourceStatus *InstantSnapshotResourceStatus `json:"resourceStatus,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SourceDisk: URL of the source disk used to create this instant snapshot.
	// Note that the source disk must be in the same zone/region as the instant
	// snapshot to be created. This can be a full or valid partial URL. For
	// example, the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /disks/disk - projects/project/zones/zone/disks/disk -
	// projects/project/regions/region/disks/disk - zones/zone/disks/disk -
	// regions/region/disks/disk
	SourceDisk string `json:"sourceDisk,omitempty"`
	// SourceDiskId: [Output Only] The ID value of the disk used to create this
	// InstantSnapshot. This value may be used to determine whether the
	// InstantSnapshot was taken from the current or a previous instance of a given
	// disk name.
	SourceDiskId string `json:"sourceDiskId,omitempty"`
	// SourceInstantSnapshotGroup: [Output Only] URL of the source instant snapshot
	// this instant snapshot is part of. Note that the source instant snapshot
	// group must be in the same zone/region as the instant snapshot to be created.
	// This can be a full or valid partial URL.
	SourceInstantSnapshotGroup string `json:"sourceInstantSnapshotGroup,omitempty"`
	// SourceInstantSnapshotGroupId: [Output Only] The ID value of the source
	// instant snapshot group this InstantSnapshot is part of. This value may be
	// used to determine whether the InstantSnapshot was created as part of an
	// InstantSnapshotGroup creation.
	SourceInstantSnapshotGroupId string `json:"sourceInstantSnapshotGroupId,omitempty"`
	// Status: [Output Only] The status of the instantSnapshot. This can be
	// CREATING, DELETING, FAILED, or READY.
	//
	// Possible values:
	//   "CREATING" - InstantSnapshot creation is in progress.
	//   "DELETING" - InstantSnapshot is currently being deleted.
	//   "FAILED" - InstantSnapshot creation failed.
	//   "READY" - InstantSnapshot has been created successfully.
	//   "UNAVAILABLE" - InstantSnapshot is currently unavailable and cannot be
	// used for Disk restoration
	Status string `json:"status,omitempty"`
	// Zone: [Output Only] URL of the zone where the instant snapshot resides. You
	// must specify this field as part of the HTTP request URL. It is not settable
	// as a field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Architecture") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Architecture") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshot) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshot
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstantSnapshotsScopedList resources.
	Items map[string]InstantSnapshotsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#instantSnapshotAggregatedList for aggregated lists of
	// instantSnapshots.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstantSnapshotAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstantSnapshotAggregatedListWarning: [Output Only] Informational warning
// message.
type InstantSnapshotAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstantSnapshotAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstantSnapshotGroup: Represents an InstantSnapshotGroup resource. An
// instant snapshot group is a set of instant snapshots that represents a point
// in time state of a consistency group.
type InstantSnapshotGroup struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: Optional. An optional description of this resource. Provide
	// this property when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#instantSnapshotGroup for InstantSnapshotGroup resources.
	Kind string `json:"kind,omitempty"`
	// Name: Identifier. Name of the resource; provided by the client when the
	// resource is created. The name must be 1-63 characters long, and comply with
	// RFC1035. Specifically, the name must be 1-63 characters long and match the
	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
	// character must be a lowercase letter, and all following characters must be a
	// dash, lowercase letter, or digit, except the last character, which cannot be
	// a dash.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] URL of the region where the instant snapshot group
	// resides. You must specify this field as part of the HTTP request URL. It is
	// not settable as a field in the request body.
	Region         string                              `json:"region,omitempty"`
	ResourceStatus *InstantSnapshotGroupResourceStatus `json:"resourceStatus,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId         string `json:"selfLinkWithId,omitempty"`
	SourceConsistencyGroup string `json:"sourceConsistencyGroup,omitempty"`
	// Status: [Output Only]
	//
	// Possible values:
	//   "CREATING"
	//   "DELETING"
	//   "FAILED"
	//   "INVALID"
	//   "READY"
	//   "UNKNOWN"
	Status string `json:"status,omitempty"`
	// Zone: [Output Only] URL of the zone where the instant snapshot group
	// resides. You must specify this field as part of the HTTP request URL. It is
	// not settable as a field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotGroup) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotGroupResourceStatus struct {
	// ConsistencyMembershipResolutionTime: [Output Only]
	ConsistencyMembershipResolutionTime string `json:"consistencyMembershipResolutionTime,omitempty"`
	// SourceInfo: [Output Only]
	SourceInfo *InstantSnapshotGroupSourceInfo `json:"sourceInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ConsistencyMembershipResolutionTime") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "ConsistencyMembershipResolutionTime") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotGroupResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotGroupResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotGroupSourceInfo struct {
	ConsistencyGroup   string `json:"consistencyGroup,omitempty"`
	ConsistencyGroupId string `json:"consistencyGroupId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsistencyGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsistencyGroup") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotGroupSourceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotGroupSourceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstantSnapshotList: Contains a list of InstantSnapshot resources.
type InstantSnapshotList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstantSnapshot resources.
	Items []*InstantSnapshot `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InstantSnapshotListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotList) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstantSnapshotListWarning: [Output Only] Informational warning message.
type InstantSnapshotListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstantSnapshotListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotResourceStatus struct {
	// StorageSizeBytes: [Output Only] The storage size of this instant snapshot.
	StorageSizeBytes int64 `json:"storageSizeBytes,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "StorageSizeBytes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StorageSizeBytes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotsScopedList struct {
	// InstantSnapshots: [Output Only] A list of instantSnapshots contained in this
	// scope.
	InstantSnapshots []*InstantSnapshot `json:"instantSnapshots,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// instantSnapshots when the list is empty.
	Warning *InstantSnapshotsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstantSnapshots") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstantSnapshots") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstantSnapshotsScopedListWarning: [Output Only] Informational warning which
// replaces the list of instantSnapshots when the list is empty.
type InstantSnapshotsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InstantSnapshotsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstantSnapshotsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstantSnapshotsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that must stay
// within the specified integer range.
type Int64RangeMatch struct {
	// RangeEnd: The end of the range (exclusive) in signed long integer format.
	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
	// RangeStart: The start of the range (inclusive) in signed long integer
	// format.
	RangeStart int64 `json:"rangeStart,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RangeEnd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Int64RangeMatch) MarshalJSON() ([]byte, error) {
	type NoMethod Int64RangeMatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Interconnect: Represents an Interconnect resource. An Interconnect resource
// is a dedicated connection between the Google Cloud network and your
// on-premises network. For more information, read the Dedicated Interconnect
// Overview.
type Interconnect struct {
	// AaiEnabled: Enable or disable the Application Aware Interconnect(AAI)
	// feature on this interconnect.
	AaiEnabled bool `json:"aaiEnabled,omitempty"`
	// AdminEnabled: Administrative status of the interconnect. When this is set to
	// true, the Interconnect is functional and can carry traffic. When set to
	// false, no packets can be carried over the interconnect and no BGP routes are
	// exchanged over it. By default, the status is set to true.
	AdminEnabled bool `json:"adminEnabled,omitempty"`
	// ApplicationAwareInterconnect: Configuration for enabling Application Aware
	// Interconnect (AAI) on this Cloud Interconnect connection between Google and
	// your on-premises router.
	ApplicationAwareInterconnect *InterconnectApplicationAwareInterconnect `json:"applicationAwareInterconnect,omitempty"`
	// AvailableFeatures: [Output only] List of features available for this
	// Interconnect connection, which can take one of the following values: -
	// MACSEC If present then the Interconnect connection is provisioned on MACsec
	// capable hardware ports. If not present then the Interconnect connection is
	// provisioned on non-MACsec capable ports and MACsec isn't supported and
	// enabling MACsec fails.
	//
	// Possible values:
	//   "IF_MACSEC" - Media Access Control security (MACsec)
	AvailableFeatures []string `json:"availableFeatures,omitempty"`
	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that describe the
	// individual circuits in this LAG.
	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomerName: Customer name, to put in the Letter of Authorization as the
	// party authorized to request a crossconnect.
	CustomerName string `json:"customerName,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// ExpectedOutages: [Output Only] A list of outages expected for this
	// Interconnect.
	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
	// GoogleIpAddress: [Output Only] IP address configured on the Google side of
	// the Interconnect link. This can be used only for ping tests.
	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
	// GoogleReferenceId: [Output Only] Google reference ID to be used when raising
	// support tickets with Google or otherwise to debug backend connectivity
	// issues.
	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InterconnectAttachments: [Output Only] A list of the URLs of all
	// InterconnectAttachments configured to use this Interconnect.
	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
	// InterconnectType: Type of interconnect, which can take one of the following
	// values: - PARTNER: A partner-managed interconnection shared between
	// customers though a partner. - DEDICATED: A dedicated physical
	// interconnection with the customer. Note that a value IT_PRIVATE has been
	// deprecated in favor of DEDICATED.
	//
	// Possible values:
	//   "DEDICATED" - A dedicated physical interconnection with the customer.
	//   "IT_PRIVATE" - [Deprecated] A private, physical interconnection with the
	// customer.
	//   "PARTNER" - A partner-managed interconnection shared between customers via
	// partner.
	InterconnectType string `json:"interconnectType,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#interconnect for
	// interconnects.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// Interconnect, which is essentially a hash of the labels set used for
	// optimistic locking. The fingerprint is initially generated by Compute Engine
	// and changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve an Interconnect.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// LinkType: Type of link requested, which can take one of the following
	// values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
	// LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this
	// field indicates the speed of each of the links in the bundle, not the speed
	// of the entire bundle.
	//
	// Possible values:
	//   "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics.
	//   "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. [(rate_bps) =
	// 10000000000];
	LinkType string `json:"linkType,omitempty"`
	// Location: URL of the InterconnectLocation object that represents where this
	// connection is to be provisioned.
	Location string `json:"location,omitempty"`
	// Macsec: Configuration that enables Media Access Control security (MACsec) on
	// the Cloud Interconnect connection between Google and your on-premises
	// router.
	Macsec *InterconnectMacsec `json:"macsec,omitempty"`
	// MacsecEnabled: Enable or disable MACsec on this Interconnect connection.
	// MACsec enablement fails if the MACsec object is not specified.
	MacsecEnabled bool `json:"macsecEnabled,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// NocContactEmail: Email address to contact the customer NOC for operations
	// and maintenance notifications regarding this Interconnect. If specified,
	// this will be used for notifications in addition to all other forms
	// described, such as Cloud Monitoring logs alerting and Cloud Notifications.
	// This field is required for users who sign up for Cloud Interconnect using
	// workforce identity federation.
	NocContactEmail string `json:"nocContactEmail,omitempty"`
	// OperationalStatus: [Output Only] The current status of this Interconnect's
	// functionality, which can take one of the following values: - OS_ACTIVE: A
	// valid Interconnect, which is turned up and is ready to use. Attachments may
	// be provisioned on this Interconnect. - OS_UNPROVISIONED: An Interconnect
	// that has not completed turnup. No attachments may be provisioned on this
	// Interconnect. - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing
	// internal maintenance. No attachments may be provisioned or updated on this
	// Interconnect.
	//
	// Possible values:
	//   "OS_ACTIVE" - The interconnect is valid, turned up, and ready to use.
	// Attachments may be provisioned on this interconnect.
	//   "OS_UNPROVISIONED" - The interconnect has not completed turnup. No
	// attachments may be provisioned on this interconnect.
	OperationalStatus string `json:"operationalStatus,omitempty"`
	// PeerIpAddress: [Output Only] IP address configured on the customer side of
	// the Interconnect link. The customer should configure this IP address during
	// turnup when prompted by Google NOC. This can be used only for ping tests.
	PeerIpAddress string `json:"peerIpAddress,omitempty"`
	// ProvisionedLinkCount: [Output Only] Number of links actually provisioned in
	// this interconnect.
	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
	// RemoteLocation: Indicates that this is a Cross-Cloud Interconnect. This
	// field specifies the location outside of Google's network that the
	// interconnect is connected to.
	RemoteLocation string `json:"remoteLocation,omitempty"`
	// RequestedFeatures: Optional. List of features requested for this
	// Interconnect connection, which can take one of the following values: -
	// MACSEC If specified then the connection is created on MACsec capable
	// hardware ports. If not specified, the default value is false, which
	// allocates non-MACsec capable ports first if available. This parameter can be
	// provided only with Interconnect INSERT. It isn't valid for Interconnect
	// PATCH.
	//
	// Possible values:
	//   "IF_MACSEC" - Media Access Control security (MACsec)
	RequestedFeatures []string `json:"requestedFeatures,omitempty"`
	// RequestedLinkCount: Target number of physical links in the link bundle, as
	// requested by the customer.
	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// State: [Output Only] The current state of Interconnect functionality, which
	// can take one of the following values: - ACTIVE: The Interconnect is valid,
	// turned up and ready to use. Attachments may be provisioned on this
	// Interconnect. - UNPROVISIONED: The Interconnect has not completed turnup. No
	// attachments may be provisioned on this Interconnect. - UNDER_MAINTENANCE:
	// The Interconnect is undergoing internal maintenance. No attachments may be
	// provisioned or updated on this Interconnect.
	//
	// Possible values:
	//   "ACTIVE" - The interconnect is valid, turned up, and ready to use.
	// Attachments may be provisioned on this interconnect.
	//   "UNPROVISIONED" - The interconnect has not completed turnup. No
	// attachments may be provisioned on this interconnect.
	State string `json:"state,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AaiEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AaiEnabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Interconnect) MarshalJSON() ([]byte, error) {
	type NoMethod Interconnect
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectApplicationAwareInterconnect: Configuration information for
// enabling Application Aware Interconnect (AAI) on this Cloud Interconnect
// connection between Google and your on-premises router.
type InterconnectApplicationAwareInterconnect struct {
	BandwidthPercentagePolicy          *InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy `json:"bandwidthPercentagePolicy,omitempty"`
	EgressMinBandwidthPercentagePolicy *InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy `json:"egressMinBandwidthPercentagePolicy,omitempty"`
	// ProfileDescription: A description for the AAI profile on this interconnect.
	ProfileDescription   string                                                        `json:"profileDescription,omitempty"`
	StrictPriorityPolicy *InterconnectApplicationAwareInterconnectStrictPriorityPolicy `json:"strictPriorityPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BandwidthPercentagePolicy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BandwidthPercentagePolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectApplicationAwareInterconnect) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectApplicationAwareInterconnect
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectApplicationAwareInterconnectBandwidthPercentage: Specify
// bandwidth percentages [1-100] for various traffic classes in
// BandwidthPercentagePolicy. The sum of all percentages must equal 100. All
// traffic classes must have a percentage value specified.
type InterconnectApplicationAwareInterconnectBandwidthPercentage struct {
	// Percentage: Bandwidth percentage for a specific traffic class.
	Percentage int64 `json:"percentage,omitempty"`
	// TrafficClass: TrafficClass whose bandwidth percentage is being specified.
	//
	// Possible values:
	//   "TC1" - Traffic Class 1, corresponding to DSCP ranges (0-7) 000xxx.
	//   "TC2" - Traffic Class 2, corresponding to DSCP ranges (8-15) 001xxx.
	//   "TC3" - Traffic Class 3, corresponding to DSCP ranges (16-23) 010xxx.
	//   "TC4" - Traffic Class 4, corresponding to DSCP ranges (24-31) 011xxx.
	//   "TC5" - Traffic Class 5, corresponding to DSCP ranges (32-47) 10xxxx.
	//   "TC6" - Traffic Class 6, corresponding to DSCP ranges (48-63) 11xxxx.
	TrafficClass string `json:"trafficClass,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Percentage") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Percentage") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectApplicationAwareInterconnectBandwidthPercentage) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectApplicationAwareInterconnectBandwidthPercentage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy struct {
	// BandwidthPercentages: Specify bandwidth percentages for various traffic
	// classes for queuing type Bandwidth Percent.
	BandwidthPercentages []*InterconnectApplicationAwareInterconnectBandwidthPercentage `json:"bandwidthPercentages,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BandwidthPercentages") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BandwidthPercentages") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectApplicationAwareInterconnectStrictPriorityPolicy: Specify
// configuration for StrictPriorityPolicy.
type InterconnectApplicationAwareInterconnectStrictPriorityPolicy struct {
}

// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
// resource. You can use Interconnect attachments (VLANS) to connect your
// Virtual Private Cloud networks to your on-premises networks through an
// Interconnect. For more information, read Creating VLAN Attachments.
type InterconnectAttachment struct {
	// AdminEnabled: Determines whether this Attachment will carry packets. Not
	// present for PARTNER_PROVIDER.
	AdminEnabled bool `json:"adminEnabled,omitempty"`
	// Bandwidth: Provisioned bandwidth capacity for the interconnect attachment.
	// For attachments of type DEDICATED, the user can set the bandwidth. For
	// attachments of type PARTNER, the Google Partner that is operating the
	// interconnect must set the bandwidth. Output only for PARTNER type, mutable
	// for PARTNER_PROVIDER and DEDICATED, and can take one of the following
	// values: - BPS_50M: 50 Mbit/s - BPS_100M: 100 Mbit/s - BPS_200M: 200 Mbit/s -
	// BPS_300M: 300 Mbit/s - BPS_400M: 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G:
	// 1 Gbit/s - BPS_2G: 2 Gbit/s - BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s -
	// BPS_20G: 20 Gbit/s - BPS_50G: 50 Gbit/s
	//
	// Possible values:
	//   "BPS_100M" - 100 Mbit/s
	//   "BPS_10G" - 10 Gbit/s
	//   "BPS_1G" - 1 Gbit/s
	//   "BPS_200M" - 200 Mbit/s
	//   "BPS_20G" - 20 Gbit/s
	//   "BPS_2G" - 2 Gbit/s
	//   "BPS_300M" - 300 Mbit/s
	//   "BPS_400M" - 400 Mbit/s
	//   "BPS_500M" - 500 Mbit/s
	//   "BPS_50G" - 50 Gbit/s
	//   "BPS_50M" - 50 Mbit/s
	//   "BPS_5G" - 5 Gbit/s
	Bandwidth string `json:"bandwidth,omitempty"`
	// CandidateIpv6Subnets: This field is not available.
	CandidateIpv6Subnets []string `json:"candidateIpv6Subnets,omitempty"`
	// CandidateSubnets: Up to 16 candidate prefixes that can be used to restrict
	// the allocation of cloudRouterIpAddress and customerRouterIpAddress for this
	// attachment. All prefixes must be within link-local address space
	// (169.254.0.0/16) and must be /29 or shorter (/28, /27, etc). Google will
	// attempt to select an unused /29 from the supplied candidate prefix(es). The
	// request will fail if all possible /29s are in use on Google's edge. If not
	// supplied, Google will randomly select an unused /29 from all of link-local
	// space.
	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to be
	// configured on Cloud Router Interface for this interconnect attachment.
	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
	// CloudRouterIpv6Address: [Output Only] IPv6 address + prefix length to be
	// configured on Cloud Router Interface for this interconnect attachment.
	CloudRouterIpv6Address string `json:"cloudRouterIpv6Address,omitempty"`
	// CloudRouterIpv6InterfaceId: This field is not available.
	CloudRouterIpv6InterfaceId string `json:"cloudRouterIpv6InterfaceId,omitempty"`
	// ConfigurationConstraints: [Output Only] Constraints for this attachment, if
	// any. The attachment does not work if these constraints are not met.
	ConfigurationConstraints *InterconnectAttachmentConfigurationConstraints `json:"configurationConstraints,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length to be
	// configured on the customer router subinterface for this interconnect
	// attachment.
	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
	// CustomerRouterIpv6Address: [Output Only] IPv6 address + prefix length to be
	// configured on the customer router subinterface for this interconnect
	// attachment.
	CustomerRouterIpv6Address string `json:"customerRouterIpv6Address,omitempty"`
	// CustomerRouterIpv6InterfaceId: This field is not available.
	CustomerRouterIpv6InterfaceId string `json:"customerRouterIpv6InterfaceId,omitempty"`
	// DataplaneVersion: [Output Only] Dataplane version for this
	// InterconnectAttachment. This field is only present for Dataplane version 2
	// and higher. Absence of this field in the API output indicates that the
	// Dataplane is version 1.
	DataplaneVersion int64 `json:"dataplaneVersion,omitempty"`
	// Description: An optional description of this resource.
	Description string `json:"description,omitempty"`
	// EdgeAvailabilityDomain: Desired availability domain for the attachment. Only
	// available for type PARTNER, at creation time, and can take one of the
	// following values: - AVAILABILITY_DOMAIN_ANY - AVAILABILITY_DOMAIN_1 -
	// AVAILABILITY_DOMAIN_2 For improved reliability, customers should configure a
	// pair of attachments, one per availability domain. The selected availability
	// domain will be provided to the Partner via the pairing key, so that the
	// provisioned circuit will lie in the specified domain. If not specified, the
	// value will default to AVAILABILITY_DOMAIN_ANY.
	//
	// Possible values:
	//   "AVAILABILITY_DOMAIN_1"
	//   "AVAILABILITY_DOMAIN_2"
	//   "AVAILABILITY_DOMAIN_ANY"
	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
	// Encryption: Indicates the user-supplied encryption option of this VLAN
	// attachment (interconnectAttachment). Can only be specified at attachment
	// creation for PARTNER or DEDICATED attachments. Possible values are: - NONE -
	// This is the default value, which means that the VLAN attachment carries
	// unencrypted traffic. VMs are able to send traffic to, or receive traffic
	// from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only
	// encrypted traffic that is encrypted by an IPsec device, such as an HA VPN
	// gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or
	// receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud
	// Interconnect*, the VLAN attachment must be created with this option.
	//
	// Possible values:
	//   "IPSEC" - The interconnect attachment will carry only encrypted traffic
	// that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot
	// directly send traffic to or receive traffic from such an interconnect
	// attachment. To use HA VPN over Cloud Interconnect, the interconnect
	// attachment must be created with this option.
	//   "NONE" - This is the default value, which means the Interconnect
	// Attachment will carry unencrypted traffic. VMs will be able to send traffic
	// to or receive traffic from such interconnect attachment.
	Encryption string `json:"encryption,omitempty"`
	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
	// raising support tickets with Google or otherwise to debug backend
	// connectivity issues. [Deprecated] This field is not used.
	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Interconnect: URL of the underlying Interconnect object that this
	// attachment's traffic will traverse through.
	Interconnect string `json:"interconnect,omitempty"`
	// IpsecInternalAddresses: A list of URLs of addresses that have been reserved
	// for the VLAN attachment. Used only for the VLAN attachment that has the
	// encryption option as IPSEC. The addresses must be regional internal IP
	// address ranges. When creating an HA VPN gateway over the VLAN attachment, if
	// the attachment is configured to use a regional internal IP address, then the
	// VPN gateway's IP address is allocated from the IP address range specified
	// here. For example, if the HA VPN gateway's interface 0 is paired to this
	// VLAN attachment, then a regional internal IP address for the VPN gateway
	// interface 0 will be allocated from the IP address specified for this VLAN
	// attachment. If this field is not specified when creating the VLAN
	// attachment, then later on when creating an HA VPN gateway on this VLAN
	// attachment, the HA VPN gateway's IP address is allocated from the regional
	// external IP address pool.
	IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#interconnectAttachment for interconnect attachments.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// InterconnectAttachment, which is essentially a hash of the labels set used
	// for optimistic locking. The fingerprint is initially generated by Compute
	// Engine and changes after every request to modify or update labels. You must
	// always provide an up-to-date fingerprint hash in order to update or change
	// labels, otherwise the request will fail with error 412 conditionNotMet. To
	// see the latest fingerprint, make a get() request to retrieve an
	// InterconnectAttachment.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing through
	// this interconnect attachment. Only 1440 and 1500 are allowed. If not
	// specified, the value will default to 1440.
	Mtu int64 `json:"mtu,omitempty"`
	// MulticastEnabled: Whether or not to permit multicast traffic for this
	// attachment. Multicast packets will be dropped if this is not enabled.
	MulticastEnabled bool `json:"multicastEnabled,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// OperationalStatus: [Output Only] The current status of whether or not this
	// interconnect attachment is functional, which can take one of the following
	// values: - OS_ACTIVE: The attachment has been turned up and is ready to use.
	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because turnup
	// is not complete.
	//
	// Possible values:
	//   "OS_ACTIVE" - Indicates that attachment has been turned up and is ready to
	// use.
	//   "OS_UNPROVISIONED" - Indicates that attachment is not ready to use yet,
	// because turnup is not complete.
	OperationalStatus string `json:"operationalStatus,omitempty"`
	// PairingKey: [Output only for type PARTNER. Input only for PARTNER_PROVIDER.
	// Not present for DEDICATED]. The opaque identifier of a PARTNER attachment
	// used to initiate provisioning with a selected partner. Of the form
	// "XXXXX/region/domain"
	PairingKey string `json:"pairingKey,omitempty"`
	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3 Partner if
	// they configured BGP on behalf of the customer. Output only for PARTNER type,
	// input only for PARTNER_PROVIDER, not available for DEDICATED.
	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
	// PartnerMetadata: Informational metadata about Partner attachments from
	// Partners to display to customers. Output only for PARTNER type, mutable for
	// PARTNER_PROVIDER, not available for DEDICATED.
	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
	// PrivateInterconnectInfo: [Output Only] Information specific to an
	// InterconnectAttachment. This property is populated if the interconnect that
	// this is attached to is of type DEDICATED.
	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
	// Region: [Output Only] URL of the region where the regional interconnect
	// attachment resides. You must specify this field as part of the HTTP request
	// URL. It is not settable as a field in the request body.
	Region string `json:"region,omitempty"`
	// RemoteService: [Output Only] If the attachment is on a Cross-Cloud
	// Interconnect connection, this field contains the interconnect's remote
	// location service provider. Example values: "Amazon Web Services" "Microsoft
	// Azure". The field is set only for attachments on Cross-Cloud Interconnect
	// connections. Its value is copied from the InterconnectRemoteLocation
	// remoteService field.
	RemoteService string `json:"remoteService,omitempty"`
	// Router: URL of the Cloud Router to be used for dynamic routing. This router
	// must be in the same region as this InterconnectAttachment. The
	// InterconnectAttachment will automatically connect the Interconnect to the
	// network & region within which the Cloud Router is configured.
	Router string `json:"router,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// StackType: The stack type for this interconnect attachment to identify
	// whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will
	// be used. This field can be both set at interconnect attachments creation and
	// update interconnect attachment operations.
	//
	// Possible values:
	//   "IPV4_IPV6" - The interconnect attachment can have both IPv4 and IPv6
	// addresses.
	//   "IPV4_ONLY" - The interconnect attachment will only be assigned IPv4
	// addresses.
	StackType string `json:"stackType,omitempty"`
	// State: [Output Only] The current state of this attachment's functionality.
	// Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,
	// PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values
	// PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for
	// only PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
	// take one of the following values: - ACTIVE: The attachment has been turned
	// up and is ready to use. - UNPROVISIONED: The attachment is not ready to use
	// yet, because turnup is not complete. - PENDING_PARTNER: A newly-created
	// PARTNER attachment that has not yet been configured on the Partner side. -
	// PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
	// provisioning after a PARTNER_PROVIDER attachment was created that references
	// it. - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
	// waiting for a customer to activate it. - DEFUNCT: The attachment was deleted
	// externally and is no longer functional. This could be because the associated
	// Interconnect was removed, or because the other side of a Partner attachment
	// was deleted.
	//
	// Possible values:
	//   "ACTIVE" - Indicates that attachment has been turned up and is ready to
	// use.
	//   "DEFUNCT" - The attachment was deleted externally and is no longer
	// functional. This could be because the associated Interconnect was wiped out,
	// or because the other side of a Partner attachment was deleted.
	//   "PARTNER_REQUEST_RECEIVED" - A PARTNER attachment is in the process of
	// provisioning after a PARTNER_PROVIDER attachment was created that references
	// it.
	//   "PENDING_CUSTOMER" - PARTNER or PARTNER_PROVIDER attachment that is
	// waiting for the customer to activate.
	//   "PENDING_PARTNER" - A newly created PARTNER attachment that has not yet
	// been configured on the Partner side.
	//   "STATE_UNSPECIFIED"
	//   "UNPROVISIONED" - Indicates that attachment is not ready to use yet,
	// because turnup is not complete.
	State string `json:"state,omitempty"`
	// SubnetLength: Length of the IPv4 subnet mask. Allowed values: - 29 (default)
	// - 30 The default value is 29, except for Cross-Cloud Interconnect
	// connections that use an InterconnectRemoteLocation with a
	// constraints.subnetLengthRange.min equal to 30. For example, connections that
	// use an Azure remote location fall into this category. In these cases, the
	// default value is 30, and requesting 29 returns an error. Where both 29 and
	// 30 are allowed, 29 is preferred, because it gives Google Cloud Support more
	// debugging visibility.
	SubnetLength int64 `json:"subnetLength,omitempty"`
	// Type: The type of interconnect attachment this is, which can take one of the
	// following values: - DEDICATED: an attachment to a Dedicated Interconnect. -
	// PARTNER: an attachment to a Partner Interconnect, created by the customer. -
	// PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the
	// partner.
	//
	// Possible values:
	//   "DEDICATED" - Attachment to a dedicated interconnect.
	//   "PARTNER" - Attachment to a partner interconnect, created by the customer.
	//   "PARTNER_PROVIDER" - Attachment to a partner interconnect, created by the
	// partner.
	Type string `json:"type,omitempty"`
	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the range
	// 2-4093. Only specified at creation time.
	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdminEnabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachment) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InterconnectAttachmentsScopedList resources.
	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#interconnectAttachmentAggregatedList for aggregated lists of
	// interconnect attachments.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentAggregatedListWarning: [Output Only] Informational
// warning message.
type InterconnectAttachmentAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentConfigurationConstraints struct {
	// BgpMd5: [Output Only] Whether the attachment's BGP session
	// requires/allows/disallows BGP MD5 authentication. This can take one of the
	// following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example,
	// a Cross-Cloud Interconnect connection to a remote cloud provider that
	// requires BGP MD5 authentication has the interconnectRemoteLocation
	// attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and
	// that property is propagated to the attachment. Similarly, if BGP MD5 is
	// MD5_UNSUPPORTED, an error is returned if MD5 is requested.
	//
	// Possible values:
	//   "MD5_OPTIONAL" - MD5_OPTIONAL: BGP MD5 authentication is supported and can
	// optionally be configured.
	//   "MD5_REQUIRED" - MD5_REQUIRED: BGP MD5 authentication must be configured.
	//   "MD5_UNSUPPORTED" - MD5_UNSUPPORTED: BGP MD5 authentication must not be
	// configured
	BgpMd5 string `json:"bgpMd5,omitempty"`
	// BgpPeerAsnRanges: [Output Only] List of ASN ranges that the remote location
	// is known to support. Formatted as an array of inclusive ranges {min:
	// min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512,
	// max: 65534}] allows the peer ASN to be 123 or anything in the range
	// 64512-65534. This field is only advisory. Although the API accepts other
	// ranges, these are the ranges that we recommend.
	BgpPeerAsnRanges []*InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange `json:"bgpPeerAsnRanges,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BgpMd5") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BgpMd5") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentConfigurationConstraints) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentConfigurationConstraints
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange struct {
	Max int64 `json:"max,omitempty"`
	Min int64 `json:"min,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Max") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Max") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentList: Response to the list request, and contains a
// list of interconnect attachments.
type InterconnectAttachmentList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InterconnectAttachment resources.
	Items []*InterconnectAttachment `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#interconnectAttachmentList for lists of interconnect attachments.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentListWarning: [Output Only] Informational warning
// message.
type InterconnectAttachmentListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentPartnerMetadata: Informational metadata about Partner
// attachments from Partners to display to customers. These fields are
// propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER
// attachments.
type InterconnectAttachmentPartnerMetadata struct {
	// InterconnectName: Plain text name of the Interconnect this attachment is
	// connected to, as displayed in the Partner's portal. For instance "Chicago
	// 1". This value may be validated to match approved Partner values.
	InterconnectName string `json:"interconnectName,omitempty"`
	// PartnerName: Plain text name of the Partner providing this attachment. This
	// value may be validated to match approved Partner values.
	PartnerName string `json:"partnerName,omitempty"`
	// PortalUrl: URL of the Partner's portal for this Attachment. Partners may
	// customise this to be a deep link to the specific resource on the Partner
	// portal. This value may be validated to match approved Partner values.
	PortalUrl string `json:"portalUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InterconnectName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentPartnerMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentPrivateInfo: Information for an interconnect
// attachment when this belongs to an interconnect of type DEDICATED.
type InterconnectAttachmentPrivateInfo struct {
	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for traffic
	// between Google and the customer, going to and from this network and region.
	Tag8021q int64 `json:"tag8021q,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Tag8021q") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentPrivateInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentsScopedList struct {
	// InterconnectAttachments: A list of interconnect attachments contained in
	// this scope.
	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
	// Warning: Informational warning which replaces the list of addresses when the
	// list is empty.
	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InterconnectAttachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InterconnectAttachments") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentsScopedListWarning: Informational warning which
// replaces the list of addresses when the list is empty.
type InterconnectAttachmentsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectCircuitInfo: Describes a single physical circuit between the
// Customer and Google. CircuitInfo objects are created by Google, so all
// fields are output only.
type InterconnectCircuitInfo struct {
	// CustomerDemarcId: Customer-side demarc ID for this circuit.
	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned at
	// circuit turn-up.
	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at circuit
	// turn-up and provided by Google to the customer in the LOA.
	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerDemarcId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectCircuitInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectDiagnostics: Diagnostics information about the Interconnect
// connection, which contains detailed and current technical information about
// Google's side of the connection.
type InterconnectDiagnostics struct {
	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects, describing
	// individual neighbors currently seen by the Google router in the ARP cache
	// for the Interconnect. This will be empty when the Interconnect is not
	// bundled.
	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
	// BundleAggregationType: The aggregation type of the bundle interface.
	//
	// Possible values:
	//   "BUNDLE_AGGREGATION_TYPE_LACP" - LACP is enabled.
	//   "BUNDLE_AGGREGATION_TYPE_STATIC" - LACP is disabled.
	BundleAggregationType string `json:"bundleAggregationType,omitempty"`
	// BundleOperationalStatus: The operational status of the bundle interface.
	//
	// Possible values:
	//   "BUNDLE_OPERATIONAL_STATUS_DOWN" - If bundleAggregationType is LACP: LACP
	// is not established and/or all links in the bundle have DOWN operational
	// status. If bundleAggregationType is STATIC: one or more links in the bundle
	// has DOWN operational status.
	//   "BUNDLE_OPERATIONAL_STATUS_UP" - If bundleAggregationType is LACP: LACP is
	// established and at least one link in the bundle has UP operational status.
	// If bundleAggregationType is STATIC: all links in the bundle (typically just
	// one) have UP operational status.
	BundleOperationalStatus string `json:"bundleOperationalStatus,omitempty"`
	// Links: A list of InterconnectDiagnostics.LinkStatus objects, describing the
	// status for each link on the Interconnect.
	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
	// MacAddress: The MAC address of the Interconnect's bundle interface.
	MacAddress string `json:"macAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ArpCaches") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectDiagnostics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries seen on
// this link
type InterconnectDiagnosticsARPEntry struct {
	// IpAddress: The IP address of this ARP neighbor.
	IpAddress string `json:"ipAddress,omitempty"`
	// MacAddress: The MAC address of this ARP neighbor.
	MacAddress string `json:"macAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectDiagnosticsARPEntry
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectDiagnosticsLinkLACPStatus struct {
	// GoogleSystemId: System ID of the port on Google's side of the LACP exchange.
	GoogleSystemId string `json:"googleSystemId,omitempty"`
	// NeighborSystemId: System ID of the port on the neighbor's side of the LACP
	// exchange.
	NeighborSystemId string `json:"neighborSystemId,omitempty"`
	// State: The state of a LACP link, which can take one of the following values:
	// - ACTIVE: The link is configured and active within the bundle. - DETACHED:
	// The link is not configured within the bundle. This means that the rest of
	// the object should be empty.
	//
	// Possible values:
	//   "ACTIVE" - The link is configured and active within the bundle.
	//   "DETACHED" - The link is not configured within the bundle, this means the
	// rest of the object should be empty.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GoogleSystemId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectDiagnosticsLinkLACPStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectDiagnosticsLinkOpticalPower struct {
	// State: The status of the current value when compared to the warning and
	// alarm levels for the receiving or transmitting transceiver. Possible states
	// include: - OK: The value has not crossed a warning threshold. - LOW_WARNING:
	// The value has crossed below the low warning threshold. - HIGH_WARNING: The
	// value has crossed above the high warning threshold. - LOW_ALARM: The value
	// has crossed below the low alarm threshold. - HIGH_ALARM: The value has
	// crossed above the high alarm threshold.
	//
	// Possible values:
	//   "HIGH_ALARM" - The value has crossed above the high alarm threshold.
	//   "HIGH_WARNING" - The value of the current optical power has crossed above
	// the high warning threshold.
	//   "LOW_ALARM" - The value of the current optical power has crossed below the
	// low alarm threshold.
	//   "LOW_WARNING" - The value of the current optical power has crossed below
	// the low warning threshold.
	//   "OK" - The value of the current optical power has not crossed a warning
	// threshold.
	State string `json:"state,omitempty"`
	// Value: Value of the current receiving or transmitting optical power, read in
	// dBm. Take a known good optical value, give it a 10% margin and trigger
	// warnings relative to that value. In general, a -7dBm warning and a -11dBm
	// alarm are good optical value estimates for most links.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "State") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "State") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectDiagnosticsLinkOpticalPower
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
	type NoMethod InterconnectDiagnosticsLinkOpticalPower
	var s1 struct {
		Value gensupport.JSONFloat64 `json:"value"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Value = float64(s1.Value)
	return nil
}

type InterconnectDiagnosticsLinkStatus struct {
	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects, describing
	// the ARP neighbor entries seen on this link. This will be empty if the link
	// is bundled
	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
	// CircuitId: The unique ID for this link assigned during turn up by Google.
	CircuitId string `json:"circuitId,omitempty"`
	// GoogleDemarc: The Demarc address assigned by Google and provided in the LoA.
	GoogleDemarc string                                 `json:"googleDemarc,omitempty"`
	LacpStatus   *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
	// Macsec: Describes the status of MACsec encryption on this link.
	Macsec *InterconnectDiagnosticsMacsecStatus `json:"macsec,omitempty"`
	// OperationalStatus: The operational status of the link.
	//
	// Possible values:
	//   "LINK_OPERATIONAL_STATUS_DOWN" - The interface is unable to communicate
	// with the remote end.
	//   "LINK_OPERATIONAL_STATUS_UP" - The interface has low level communication
	// with the remote end.
	OperationalStatus string `json:"operationalStatus,omitempty"`
	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower object,
	// describing the current value and status of the received light level.
	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
	// object, describing the current value and status of the transmitted light
	// level.
	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ArpCaches") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectDiagnosticsLinkStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectDiagnosticsMacsecStatus: Describes the status of MACsec
// encryption on the link.
type InterconnectDiagnosticsMacsecStatus struct {
	// Ckn: Indicates the Connectivity Association Key Name (CKN) currently being
	// used if MACsec is operational.
	Ckn string `json:"ckn,omitempty"`
	// Operational: Indicates whether or not MACsec is operational on this link.
	Operational bool `json:"operational,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ckn") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ckn") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectDiagnosticsMacsecStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectDiagnosticsMacsecStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectList: Response to the list request, and contains a list of
// interconnects.
type InterconnectList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Interconnect resources.
	Items []*Interconnect `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#interconnectList for
	// lists of interconnects.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InterconnectListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectList) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectListWarning: [Output Only] Informational warning message.
type InterconnectListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InterconnectListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectLocation: Represents an Interconnect Attachment (VLAN) Location
// resource. You can use this resource to find location details about an
// Interconnect attachment (VLAN). For more information about interconnect
// attachments, read Creating VLAN Attachments.
type InterconnectLocation struct {
	// Address: [Output Only] The postal address of the Point of Presence, each
	// line in the address is separated by a newline character.
	Address string `json:"address,omitempty"`
	// AvailabilityZone: [Output Only] Availability zone for this
	// InterconnectLocation. Within a metropolitan area (metro), maintenance will
	// not be simultaneously scheduled in more than one availability zone. Example:
	// "zone1" or "zone2".
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	// AvailableFeatures: [Output only] List of features available at this
	// InterconnectLocation, which can take one of the following values: - MACSEC
	//
	// Possible values:
	//   "IF_MACSEC" - Media Access Control security (MACsec)
	AvailableFeatures []string `json:"availableFeatures,omitempty"`
	// AvailableLinkTypes: [Output only] List of link types available at this
	// InterconnectLocation, which can take one of the following values: -
	// LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR
	//
	// Possible values:
	//   "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics.
	//   "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. [(rate_bps) =
	// 10000000000];
	AvailableLinkTypes []string `json:"availableLinkTypes,omitempty"`
	// City: [Output Only] Metropolitan area designator that indicates which city
	// an interconnect is located. For example: "Chicago, IL", "Amsterdam,
	// Netherlands".
	City string `json:"city,omitempty"`
	// Continent: [Output Only] Continent for this location, which can take one of
	// the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA -
	// SOUTH_AMERICA
	//
	// Possible values:
	//   "AFRICA"
	//   "ASIA_PAC"
	//   "C_AFRICA"
	//   "C_ASIA_PAC"
	//   "C_EUROPE"
	//   "C_NORTH_AMERICA"
	//   "C_SOUTH_AMERICA"
	//   "EUROPE"
	//   "NORTH_AMERICA"
	//   "SOUTH_AMERICA"
	Continent string `json:"continent,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: [Output Only] An optional description of the resource.
	Description string `json:"description,omitempty"`
	// FacilityProvider: [Output Only] The name of the provider for this facility
	// (e.g., EQUINIX).
	FacilityProvider string `json:"facilityProvider,omitempty"`
	// FacilityProviderFacilityId: [Output Only] A provider-assigned Identifier for
	// this facility (e.g., Ashburn-DC1).
	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#interconnectLocation for interconnect locations.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
	// facility (corresponding with a netfac type in peeringdb).
	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
	// objects, that describe parameters pertaining to the relation between this
	// InterconnectLocation and various Google Cloud regions.
	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: [Output Only] The status of this InterconnectLocation, which can
	// take one of the following values: - CLOSED: The InterconnectLocation is
	// closed and is unavailable for provisioning new Interconnects. - AVAILABLE:
	// The InterconnectLocation is available for provisioning new Interconnects.
	//
	// Possible values:
	//   "AVAILABLE" - The InterconnectLocation is available for provisioning new
	// Interconnects.
	//   "CLOSED" - The InterconnectLocation is closed for provisioning new
	// Interconnects.
	Status string `json:"status,omitempty"`
	// SupportsPzs: [Output Only] Reserved for future use.
	SupportsPzs bool `json:"supportsPzs,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectLocation) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectLocationList: Response to the list request, and contains a list
// of interconnect locations.
type InterconnectLocationList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InterconnectLocation resources.
	Items []*InterconnectLocation `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#interconnectLocationList for lists of interconnect locations.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectLocationList) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectLocationList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectLocationListWarning: [Output Only] Informational warning
// message.
type InterconnectLocationListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectLocationListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectLocationListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectLocationListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectLocationRegionInfo: Information about any potential
// InterconnectAttachments between an Interconnect at a specific
// InterconnectLocation, and a specific Cloud Region.
type InterconnectLocationRegionInfo struct {
	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
	// InterconnectLocation to a VM in this region.
	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
	// LocationPresence: Identifies the network presence of this location.
	//
	// Possible values:
	//   "GLOBAL" - This region is not in any common network presence with this
	// InterconnectLocation.
	//   "LOCAL_REGION" - This region shares the same regional network presence as
	// this InterconnectLocation.
	//   "LP_GLOBAL" - [Deprecated] This region is not in any common network
	// presence with this InterconnectLocation.
	//   "LP_LOCAL_REGION" - [Deprecated] This region shares the same regional
	// network presence as this InterconnectLocation.
	LocationPresence string `json:"locationPresence,omitempty"`
	// Region: URL for the region of this location.
	Region string `json:"region,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectLocationRegionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectMacsec: Configuration information for enabling Media Access
// Control security (MACsec) on this Cloud Interconnect connection between
// Google and your on-premises router.
type InterconnectMacsec struct {
	// FailOpen: If set to true, the Interconnect connection is configured with a
	// should-secure MACsec security policy, that allows the Google router to
	// fallback to cleartext traffic if the MKA session cannot be established. By
	// default, the Interconnect connection is configured with a must-secure
	// security policy that drops all traffic if the MKA session cannot be
	// established with your router.
	FailOpen bool `json:"failOpen,omitempty"`
	// PreSharedKeys: Required. A keychain placeholder describing a set of named
	// key objects along with their start times. A MACsec CKN/CAK is generated for
	// each key in the key chain. Google router automatically picks the key with
	// the most recent startTime when establishing or re-establishing a MACsec
	// secure link.
	PreSharedKeys []*InterconnectMacsecPreSharedKey `json:"preSharedKeys,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailOpen") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailOpen") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectMacsec) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectMacsec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectMacsecConfig: MACsec configuration information for the
// Interconnect connection. Contains the generated Connectivity Association Key
// Name (CKN) and the key (CAK) for this Interconnect connection.
type InterconnectMacsecConfig struct {
	// PreSharedKeys: A keychain placeholder describing a set of named key objects
	// along with their start times. A MACsec CKN/CAK is generated for each key in
	// the key chain. Google router automatically picks the key with the most
	// recent startTime when establishing or re-establishing a MACsec secure link.
	PreSharedKeys []*InterconnectMacsecConfigPreSharedKey `json:"preSharedKeys,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PreSharedKeys") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PreSharedKeys") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectMacsecConfig) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectMacsecConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectMacsecConfigPreSharedKey: Describes a pre-shared key used to
// setup MACsec in static connectivity association key (CAK) mode.
type InterconnectMacsecConfigPreSharedKey struct {
	// Cak: An auto-generated Connectivity Association Key (CAK) for this key.
	Cak string `json:"cak,omitempty"`
	// Ckn: An auto-generated Connectivity Association Key Name (CKN) for this key.
	Ckn string `json:"ckn,omitempty"`
	// Name: User provided name for this pre-shared key.
	Name string `json:"name,omitempty"`
	// StartTime: User provided timestamp on or after which this key is valid.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cak") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cak") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectMacsecConfigPreSharedKey) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectMacsecConfigPreSharedKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectMacsecPreSharedKey: Describes a pre-shared key used to setup
// MACsec in static connectivity association key (CAK) mode.
type InterconnectMacsecPreSharedKey struct {
	// Name: Required. A name for this pre-shared key. The name must be 1-63
	// characters long, and comply with RFC1035. Specifically, the name must be
	// 1-63 characters long and match the regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a
	// lowercase letter, and all following characters must be a dash, lowercase
	// letter, or digit, except the last character, which cannot be a dash.
	Name string `json:"name,omitempty"`
	// StartTime: A RFC3339 timestamp on or after which the key is valid. startTime
	// can be in the future. If the keychain has a single key, startTime can be
	// omitted. If the keychain has multiple keys, startTime is mandatory for each
	// key. The start times of keys must be in increasing order. The start times of
	// two consecutive keys must be at least 6 hours apart.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectMacsecPreSharedKey) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectMacsecPreSharedKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectOutageNotification: Description of a planned outage on this
// Interconnect.
type InterconnectOutageNotification struct {
	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
	// Google-side circuit IDs that will be affected.
	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
	// Description: A description about the purpose of the outage.
	Description string `json:"description,omitempty"`
	// EndTime: Scheduled end time for the outage (milliseconds since Unix epoch).
	EndTime int64 `json:"endTime,omitempty,string"`
	// IssueType: Form this outage is expected to take, which can take one of the
	// following values: - OUTAGE: The Interconnect may be completely out of
	// service for some or all of the specified window. - PARTIAL_OUTAGE: Some
	// circuits comprising the Interconnect as a whole should remain up, but with
	// reduced bandwidth. Note that the versions of this enum prefixed with "IT_"
	// have been deprecated in favor of the unprefixed values.
	//
	// Possible values:
	//   "IT_OUTAGE" - [Deprecated] The Interconnect may be completely out of
	// service for some or all of the specified window.
	//   "IT_PARTIAL_OUTAGE" - [Deprecated] Some circuits comprising the
	// Interconnect will be out of service during the expected window. The
	// interconnect as a whole should remain up, albeit with reduced bandwidth.
	//   "OUTAGE" - The Interconnect may be completely out of service for some or
	// all of the specified window.
	//   "PARTIAL_OUTAGE" - Some circuits comprising the Interconnect will be out
	// of service during the expected window. The interconnect as a whole should
	// remain up, albeit with reduced bandwidth.
	IssueType string `json:"issueType,omitempty"`
	// Name: Unique identifier for this outage notification.
	Name string `json:"name,omitempty"`
	// Source: The party that generated this notification, which can take the
	// following value: - GOOGLE: this notification as generated by Google. Note
	// that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
	//
	// Possible values:
	//   "GOOGLE" - This notification was generated by Google.
	//   "NSRC_GOOGLE" - [Deprecated] This notification was generated by Google.
	Source string `json:"source,omitempty"`
	// StartTime: Scheduled start time for the outage (milliseconds since Unix
	// epoch).
	StartTime int64 `json:"startTime,omitempty,string"`
	// State: State of this notification, which can take one of the following
	// values: - ACTIVE: This outage notification is active. The event could be in
	// the past, present, or future. See start_time and end_time for scheduling. -
	// CANCELLED: The outage associated with this notification was cancelled before
	// the outage was due to start. - COMPLETED: The outage associated with this
	// notification is complete. Note that the versions of this enum prefixed with
	// "NS_" have been deprecated in favor of the unprefixed values.
	//
	// Possible values:
	//   "ACTIVE" - This outage notification is active. The event could be in the
	// future, present, or past. See start_time and end_time for scheduling.
	//   "CANCELLED" - The outage associated with this notification was cancelled
	// before the outage was due to start.
	//   "COMPLETED" - The outage associated with this notification is complete.
	//   "NS_ACTIVE" - [Deprecated] This outage notification is active. The event
	// could be in the future, present, or past. See start_time and end_time for
	// scheduling.
	//   "NS_CANCELED" - [Deprecated] The outage associated with this notification
	// was canceled before the outage was due to start.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AffectedCircuits") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectOutageNotification
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectRemoteLocation: Represents a Cross-Cloud Interconnect Remote
// Location resource. You can use this resource to find remote location details
// about an Interconnect attachment (VLAN).
type InterconnectRemoteLocation struct {
	// Address: [Output Only] The postal address of the Point of Presence, each
	// line in the address is separated by a newline character.
	Address string `json:"address,omitempty"`
	// AttachmentConfigurationConstraints: [Output Only] Subset of fields from
	// InterconnectAttachment's |configurationConstraints| field that apply to all
	// attachments for this remote location.
	AttachmentConfigurationConstraints *InterconnectAttachmentConfigurationConstraints `json:"attachmentConfigurationConstraints,omitempty"`
	// City: [Output Only] Metropolitan area designator that indicates which city
	// an interconnect is located. For example: "Chicago, IL", "Amsterdam,
	// Netherlands".
	City string `json:"city,omitempty"`
	// Constraints: [Output Only] Constraints on the parameters for creating
	// Cross-Cloud Interconnect and associated InterconnectAttachments.
	Constraints *InterconnectRemoteLocationConstraints `json:"constraints,omitempty"`
	// Continent: [Output Only] Continent for this location, which can take one of
	// the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA -
	// SOUTH_AMERICA
	//
	// Possible values:
	//   "AFRICA"
	//   "ASIA_PAC"
	//   "EUROPE"
	//   "NORTH_AMERICA"
	//   "SOUTH_AMERICA"
	Continent string `json:"continent,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: [Output Only] An optional description of the resource.
	Description string `json:"description,omitempty"`
	// FacilityProvider: [Output Only] The name of the provider for this facility
	// (e.g., EQUINIX).
	FacilityProvider string `json:"facilityProvider,omitempty"`
	// FacilityProviderFacilityId: [Output Only] A provider-assigned Identifier for
	// this facility (e.g., Ashburn-DC1).
	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#interconnectRemoteLocation for interconnect remote locations.
	Kind string `json:"kind,omitempty"`
	// Lacp: [Output Only] Link Aggregation Control Protocol (LACP) constraints,
	// which can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED
	//
	// Possible values:
	//   "LACP_SUPPORTED" - LACP_SUPPORTED: LACP is supported, and enabled by
	// default on the Cross-Cloud Interconnect.
	//   "LACP_UNSUPPORTED" - LACP_UNSUPPORTED: LACP is not supported and is not be
	// enabled on this port. GetDiagnostics shows bundleAggregationType as
	// "static". GCP does not support LAGs without LACP, so requestedLinkCount must
	// be 1.
	Lacp string `json:"lacp,omitempty"`
	// MaxLagSize100Gbps: [Output Only] The maximum number of 100 Gbps ports
	// supported in a link aggregation group (LAG). When linkType is 100 Gbps,
	// requestedLinkCount cannot exceed max_lag_size_100_gbps.
	MaxLagSize100Gbps int64 `json:"maxLagSize100Gbps,omitempty"`
	// MaxLagSize10Gbps: [Output Only] The maximum number of 10 Gbps ports
	// supported in a link aggregation group (LAG). When linkType is 10 Gbps,
	// requestedLinkCount cannot exceed max_lag_size_10_gbps.
	MaxLagSize10Gbps int64 `json:"maxLagSize10Gbps,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
	// facility (corresponding with a netfac type in peeringdb).
	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
	// PermittedConnections: [Output Only] Permitted connections.
	PermittedConnections []*InterconnectRemoteLocationPermittedConnections `json:"permittedConnections,omitempty"`
	// RemoteService: [Output Only] Indicates the service provider present at the
	// remote location. Example values: "Amazon Web Services", "Microsoft Azure".
	RemoteService string `json:"remoteService,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: [Output Only] The status of this InterconnectRemoteLocation, which
	// can take one of the following values: - CLOSED: The
	// InterconnectRemoteLocation is closed and is unavailable for provisioning new
	// Cross-Cloud Interconnects. - AVAILABLE: The InterconnectRemoteLocation is
	// available for provisioning new Cross-Cloud Interconnects.
	//
	// Possible values:
	//   "AVAILABLE" - The InterconnectRemoteLocation is available for provisioning
	// new Cross-Cloud Interconnects.
	//   "CLOSED" - The InterconnectRemoteLocation is closed for provisioning new
	// Cross-Cloud Interconnects.
	Status string `json:"status,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectRemoteLocation) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectRemoteLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectRemoteLocationConstraints struct {
	// PortPairRemoteLocation: [Output Only] Port pair remote location constraints,
	// which can take one of the following values:
	// PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION.
	// Google Cloud API refers only to individual ports, but the UI uses this field
	// when ordering a pair of ports, to prevent users from accidentally ordering
	// something that is incompatible with their cloud provider. Specifically, when
	// ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them
	// uses a remote location with portPairMatchingRemoteLocation set to matching,
	// the UI requires that both ports use the same remote location.
	//
	// Possible values:
	//   "PORT_PAIR_MATCHING_REMOTE_LOCATION" - If
	// PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider allocates
	// ports in pairs, and the user should choose the same remote location for both
	// ports.
	//   "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" - If
	// PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision a
	// redundant pair of Cross-Cloud Interconnects using two different remote
	// locations in the same city.
	PortPairRemoteLocation string `json:"portPairRemoteLocation,omitempty"`
	// PortPairVlan: [Output Only] Port pair VLAN constraints, which can take one
	// of the following values: PORT_PAIR_UNCONSTRAINED_VLAN,
	// PORT_PAIR_MATCHING_VLAN
	//
	// Possible values:
	//   "PORT_PAIR_MATCHING_VLAN" - If PORT_PAIR_MATCHING_VLAN, the Interconnect
	// for this attachment is part of a pair of ports that should have matching
	// VLAN allocations. This occurs with Cross-Cloud Interconnect to Azure remote
	// locations. While GCP's API does not explicitly group pairs of ports, the UI
	// uses this field to ensure matching VLAN ids when configuring a redundant
	// VLAN pair.
	//   "PORT_PAIR_UNCONSTRAINED_VLAN" - PORT_PAIR_UNCONSTRAINED_VLAN means there
	// is no constraint.
	PortPairVlan string `json:"portPairVlan,omitempty"`
	// SubnetLengthRange: [Output Only] [min-length, max-length] The minimum and
	// maximum value (inclusive) for the IPv4 subnet length. For example, an
	// interconnectRemoteLocation for Azure has {min: 30, max: 30} because Azure
	// requires /30 subnets. This range specifies the values supported by both
	// cloud providers. Interconnect currently supports /29 and /30 IPv4 subnet
	// lengths. If a remote cloud has no constraint on IPv4 subnet length, the
	// range would thus be {min: 29, max: 30}.
	SubnetLengthRange *InterconnectRemoteLocationConstraintsSubnetLengthRange `json:"subnetLengthRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PortPairRemoteLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PortPairRemoteLocation") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectRemoteLocationConstraints) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectRemoteLocationConstraints
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectRemoteLocationConstraintsSubnetLengthRange struct {
	Max int64 `json:"max,omitempty"`
	Min int64 `json:"min,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Max") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Max") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectRemoteLocationConstraintsSubnetLengthRange) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectRemoteLocationConstraintsSubnetLengthRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectRemoteLocationList: Response to the list request, and contains a
// list of interconnect remote locations.
type InterconnectRemoteLocationList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InterconnectRemoteLocation resources.
	Items []*InterconnectRemoteLocation `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#interconnectRemoteLocationList for lists of interconnect remote
	// locations.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token lets you get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InterconnectRemoteLocationListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectRemoteLocationList) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectRemoteLocationList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectRemoteLocationListWarning: [Output Only] Informational warning
// message.
type InterconnectRemoteLocationListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*InterconnectRemoteLocationListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectRemoteLocationListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectRemoteLocationListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectRemoteLocationListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectRemoteLocationListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectRemoteLocationListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectRemoteLocationPermittedConnections struct {
	// InterconnectLocation: [Output Only] URL of an Interconnect location that is
	// permitted to connect to this Interconnect remote location.
	InterconnectLocation string `json:"interconnectLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InterconnectLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InterconnectLocation") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectRemoteLocationPermittedConnections) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectRemoteLocationPermittedConnections
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectsGetDiagnosticsResponse: Response for the
// InterconnectsGetDiagnosticsRequest.
type InterconnectsGetDiagnosticsResponse struct {
	Result *InterconnectDiagnostics `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectsGetDiagnosticsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectsGetMacsecConfigResponse: Response for the
// InterconnectsGetMacsecConfigRequest.
type InterconnectsGetMacsecConfigResponse struct {
	// Etag: end_interface: MixerGetResponseWithEtagBuilder
	Etag   string                    `json:"etag,omitempty"`
	Result *InterconnectMacsecConfig `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectsGetMacsecConfigResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectsGetMacsecConfigResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InternalIpAddress struct {
	// Cidr: IP CIDR address or range.
	Cidr string `json:"cidr,omitempty"`
	// Owner: The owner of the internal IP address.
	Owner string `json:"owner,omitempty"`
	// Purpose: The purpose of the internal IP address if applicable.
	Purpose string `json:"purpose,omitempty"`
	// Region: The region of the internal IP address if applicable.
	Region string `json:"region,omitempty"`
	// Type: The type of the internal IP address.
	//
	// Possible values:
	//   "PEER_RESERVED" - Reserved IP ranges on peer networks.
	//   "PEER_USED" - Used IP ranges on peer networks, including peer subnetwork
	// IP ranges.
	//   "REMOTE_RESERVED" - Reserved IP ranges on peer networks of peer networks.
	//   "REMOTE_USED" - Used IP ranges on peer networks of peer networks.
	//   "RESERVED" - Reserved IP ranges on local network.
	//   "SUBNETWORK" - Subnetwork IP ranges on local network.
	//   "TYPE_UNSPECIFIED"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cidr") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cidr") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InternalIpAddress) MarshalJSON() ([]byte, error) {
	type NoMethod InternalIpAddress
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InternalIpOwner struct {
	// IpCidrRange: IP CIDR range being owned.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// Owners: URLs of the IP owners of the IP CIDR range.
	Owners []string `json:"owners,omitempty"`
	// SystemOwned: Whether this IP CIDR range is reserved for system use.
	SystemOwned bool `json:"systemOwned,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InternalIpOwner) MarshalJSON() ([]byte, error) {
	type NoMethod InternalIpOwner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type IpAddressesList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InternalIpAddress resources.
	Items []*InternalIpAddress `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#ipAddressesList for IP
	// addresses lists.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *IpAddressesListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s IpAddressesList) MarshalJSON() ([]byte, error) {
	type NoMethod IpAddressesList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// IpAddressesListWarning: [Output Only] Informational warning message.
type IpAddressesListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*IpAddressesListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s IpAddressesListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod IpAddressesListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type IpAddressesListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s IpAddressesListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod IpAddressesListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// IpOwnerList: Contains a list of IP owners.
type IpOwnerList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InternalIpOwner resources.
	Items []*InternalIpOwner `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#ipOwnerList for lists
	// of IP owners.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *IpOwnerListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s IpOwnerList) MarshalJSON() ([]byte, error) {
	type NoMethod IpOwnerList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// IpOwnerListWarning: [Output Only] Informational warning message.
type IpOwnerListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*IpOwnerListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s IpOwnerListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod IpOwnerListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type IpOwnerListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s IpOwnerListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod IpOwnerListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Jwt: [Deprecated] JWT configuration for origin authentication. JWT
// configuration for origin authentication.
type Jwt struct {
	// Audiences: A JWT containing any of these audiences will be accepted. The
	// service name will be accepted if audiences is empty. Examples:
	// bookstore_android.apps.googleusercontent.com,
	// bookstore_web.apps.googleusercontent.com
	Audiences []string `json:"audiences,omitempty"`
	// Issuer: Identifies the issuer that issued the JWT, which is usually a URL or
	// an email address. Examples: https://securetoken.google.com,
	// 1234567-compute@developer.gserviceaccount.com
	Issuer string `json:"issuer,omitempty"`
	// JwksPublicKeys: The provider's public key set to validate the signature of
	// the JWT.
	JwksPublicKeys string `json:"jwksPublicKeys,omitempty"`
	// JwtHeaders: jwt_headers and jwt_params define where to extract the JWT from
	// an HTTP request. If no explicit location is specified, the following default
	// locations are tried in order: 1. The Authorization header using the Bearer
	// schema. See `here `_. Example: Authorization: Bearer . 2. `access_token`
	// query parameter. See `this `_ Multiple JWTs can be verified for a request.
	// Each JWT has to be extracted from the locations its issuer specified or from
	// the default locations. This field is set if JWT is sent in a request header.
	// This field specifies the header name. For example, if
	// `header=x-goog-iap-jwt-assertion`, the header format will be
	// x-goog-iap-jwt-assertion: .
	JwtHeaders []*JwtHeader `json:"jwtHeaders,omitempty"`
	// JwtParams: This field is set if JWT is sent in a query parameter. This field
	// specifies the query parameter name. For example, if jwt_params[0] is
	// jwt_token, the JWT format in the query parameter is /path?jwt_token=.
	JwtParams []string `json:"jwtParams,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audiences") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audiences") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Jwt) MarshalJSON() ([]byte, error) {
	type NoMethod Jwt
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// JwtHeader: [Deprecated] This message specifies a header location to extract
// JWT token. This message specifies a header location to extract JWT token.
type JwtHeader struct {
	// Name: The HTTP header name.
	Name string `json:"name,omitempty"`
	// ValuePrefix: The value prefix. The value format is "value_prefix" For
	// example, for "Authorization: Bearer ", value_prefix="Bearer " with a space
	// at the end.
	ValuePrefix string `json:"valuePrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s JwtHeader) MarshalJSON() ([]byte, error) {
	type NoMethod JwtHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// License: Represents a License resource. A License represents billing and
// aggregate usage data for public and marketplace images. *Caution* This
// resource is intended for use only by third-party partners who are creating
// Cloud Marketplace images.
type License struct {
	// ChargesUseFee: [Output Only] Deprecated. This field no longer reflects
	// whether a license charges a usage fee.
	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional textual description of the resource; provided by
	// the client when the resource is created.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of resource. Always compute#license for licenses.
	Kind string `json:"kind,omitempty"`
	// LicenseCode: [Output Only] The unique code used to attach this license to
	// images, snapshots, and disks.
	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
	// Name: Name of the resource. The name must be 1-63 characters long and comply
	// with RFC1035.
	Name                 string                       `json:"name,omitempty"`
	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Transferable: If false, licenses will not be copied from the source resource
	// when creating an image from a disk, disk from snapshot, or snapshot from
	// disk.
	Transferable bool `json:"transferable,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChargesUseFee") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s License) MarshalJSON() ([]byte, error) {
	type NoMethod License
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LicenseCode: Represents a License Code resource. A License Code is a unique
// identifier used to represent a license resource. *Caution* This resource is
// intended for use only by third-party partners who are creating Cloud
// Marketplace images.
type LicenseCode struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: [Output Only] Description of this License Code.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
	// licenses.
	Kind string `json:"kind,omitempty"`
	// LicenseAlias: [Output Only] URL and description aliases of Licenses with the
	// same License Code.
	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
	// Name: [Output Only] Name of the resource. The name is 1-20 characters long
	// and must be a valid 64 bit integer.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// State: [Output Only] Current state of this License Code.
	//
	// Possible values:
	//   "DISABLED" - Machines are not allowed to attach boot disks with this
	// License Code. Requests to create new resources with this license will be
	// rejected.
	//   "ENABLED" - Use is allowed for anyone with USE_READ_ONLY access to this
	// License Code.
	//   "RESTRICTED" - Use of this license is limited to a project whitelist.
	//   "STATE_UNSPECIFIED"
	//   "TERMINATED" - Reserved state.
	State string `json:"state,omitempty"`
	// Transferable: [Output Only] If true, the license will remain attached when
	// creating images or snapshots from disks. Otherwise, the license is not
	// transferred.
	Transferable bool `json:"transferable,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LicenseCode) MarshalJSON() ([]byte, error) {
	type NoMethod LicenseCode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type LicenseCodeLicenseAlias struct {
	// Description: [Output Only] Description of this License Code.
	Description string `json:"description,omitempty"`
	// SelfLink: [Output Only] URL of license corresponding to this License Code.
	SelfLink string `json:"selfLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
	type NoMethod LicenseCodeLicenseAlias
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LicenseResourceCommitment: Commitment for a particular license resource.
type LicenseResourceCommitment struct {
	// Amount: The number of licenses purchased.
	Amount int64 `json:"amount,omitempty,string"`
	// CoresPerLicense: Specifies the core range of the instance for which this
	// license applies.
	CoresPerLicense string `json:"coresPerLicense,omitempty"`
	// License: Any applicable license URI.
	License string `json:"license,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Amount") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Amount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
	type NoMethod LicenseResourceCommitment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type LicenseResourceRequirements struct {
	// MinGuestCpuCount: Minimum number of guest cpus required to use the Instance.
	// Enforced at Instance creation and Instance start.
	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
	// Instance creation and Instance start.
	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
	type NoMethod LicenseResourceRequirements
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type LicensesListResponse struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of License resources.
	Items []*License `json:"items,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *LicensesListResponseWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LicensesListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod LicensesListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LicensesListResponseWarning: [Output Only] Informational warning message.
type LicensesListResponseWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod LicensesListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type LicensesListResponseWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod LicensesListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListInstantSnapshotGroups: Contains a list of InstantSnapshotGroup
// resources.
type ListInstantSnapshotGroups struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstantSnapshotGroup resources.
	Items []*InstantSnapshotGroup `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources. end_interface:
	// MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ListInstantSnapshotGroupsWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ListInstantSnapshotGroups) MarshalJSON() ([]byte, error) {
	type NoMethod ListInstantSnapshotGroups
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListInstantSnapshotGroupsWarning: [Output Only] Informational warning
// message.
type ListInstantSnapshotGroupsWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ListInstantSnapshotGroupsWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ListInstantSnapshotGroupsWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ListInstantSnapshotGroupsWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ListInstantSnapshotGroupsWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ListInstantSnapshotGroupsWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ListInstantSnapshotGroupsWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type LocalDisk struct {
	// DiskCount: Specifies the number of such disks.
	DiskCount int64 `json:"diskCount,omitempty"`
	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
	// DiskType: Specifies the desired disk type on the node. This disk type must
	// be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this
	// should be the name of the disk type and not its URL.
	DiskType string `json:"diskType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LocalDisk) MarshalJSON() ([]byte, error) {
	type NoMethod LocalDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LocalizedMessage: Provides a localized error message that is safe to return
// to the user which can be attached to an RPC error.
type LocalizedMessage struct {
	// Locale: The locale used following the specification defined at
	// https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US",
	// "fr-CH", "es-MX"
	Locale string `json:"locale,omitempty"`
	// Message: The localized error message in the above locale.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Locale") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locale") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LocalizedMessage) MarshalJSON() ([]byte, error) {
	type NoMethod LocalizedMessage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LocationPolicy: Configuration for location policy among multiple possible
// locations (e.g. preferences for zone selection among zones in a single
// region).
type LocationPolicy struct {
	// Locations: Location configurations mapped by location name. Currently only
	// zone names are supported and must be represented as valid internal URLs,
	// such as zones/us-central1-a.
	Locations map[string]LocationPolicyLocation `json:"locations,omitempty"`
	// TargetShape: Strategy for distributing VMs across zones in a region.
	//
	// Possible values:
	//   "ANY" - GCE picks zones for creating VM instances to fulfill the requested
	// number of VMs within present resource constraints and to maximize
	// utilization of unused zonal reservations. Recommended for batch workloads
	// that do not require high availability.
	//   "ANY_SINGLE_ZONE" - GCE always selects a single zone for all the VMs,
	// optimizing for resource quotas, available reservations and general capacity.
	// Recommended for batch workloads that cannot tollerate distribution over
	// multiple zones. This the default shape in Bulk Insert and Capacity Advisor
	// APIs.
	//   "BALANCED" - GCE prioritizes acquisition of resources, scheduling VMs in
	// zones where resources are available while distributing VMs as evenly as
	// possible across allowed zones to minimize the impact of zonal failure.
	// Recommended for highly available serving workloads.
	TargetShape string `json:"targetShape,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Locations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LocationPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod LocationPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type LocationPolicyLocation struct {
	// Constraints: Constraints that the caller requires on the result distribution
	// in this zone.
	Constraints *LocationPolicyLocationConstraints `json:"constraints,omitempty"`
	// Names: Names of resources to be put in the location. Must contain unique,
	// correct resource names. If used, targetShape must be left unset.
	Names []string `json:"names,omitempty"`
	// Preference: Preference for a given location. Set to either ALLOW or DENY.
	//
	// Possible values:
	//   "ALLOW" - Location is allowed for use.
	//   "DENY" - Location is prohibited.
	//   "PREFERENCE_UNSPECIFIED" - Default value, unused.
	Preference string `json:"preference,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Constraints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Constraints") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LocationPolicyLocation) MarshalJSON() ([]byte, error) {
	type NoMethod LocationPolicyLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LocationPolicyLocationConstraints: Per-zone constraints on location policy
// for this zone.
type LocationPolicyLocationConstraints struct {
	// MaxCount: Maximum number of items that are allowed to be placed in this
	// zone. The value must be non-negative.
	MaxCount int64 `json:"maxCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LocationPolicyLocationConstraints) MarshalJSON() ([]byte, error) {
	type NoMethod LocationPolicyLocationConstraints
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LogConfig: This is deprecated and has no effect. Do not use.
type LogConfig struct {
	// CloudAudit: This is deprecated and has no effect. Do not use.
	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
	// Counter: This is deprecated and has no effect. Do not use.
	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
	// DataAccess: This is deprecated and has no effect. Do not use.
	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudAudit") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LogConfig) MarshalJSON() ([]byte, error) {
	type NoMethod LogConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LogConfigCloudAuditOptions: This is deprecated and has no effect. Do not
// use.
type LogConfigCloudAuditOptions struct {
	// LogName: This is deprecated and has no effect. Do not use.
	//
	// Possible values:
	//   "ADMIN_ACTIVITY" - This is deprecated and has no effect. Do not use.
	//   "DATA_ACCESS" - This is deprecated and has no effect. Do not use.
	//   "UNSPECIFIED_LOG_NAME" - This is deprecated and has no effect. Do not use.
	LogName string `json:"logName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LogName") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LogName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
	type NoMethod LogConfigCloudAuditOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LogConfigCounterOptions: This is deprecated and has no effect. Do not use.
type LogConfigCounterOptions struct {
	// CustomFields: This is deprecated and has no effect. Do not use.
	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
	// Field: This is deprecated and has no effect. Do not use.
	Field string `json:"field,omitempty"`
	// Metric: This is deprecated and has no effect. Do not use.
	Metric string `json:"metric,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomFields") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomFields") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
	type NoMethod LogConfigCounterOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LogConfigCounterOptionsCustomField: This is deprecated and has no effect. Do
// not use.
type LogConfigCounterOptionsCustomField struct {
	// Name: This is deprecated and has no effect. Do not use.
	Name string `json:"name,omitempty"`
	// Value: This is deprecated and has no effect. Do not use.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
	type NoMethod LogConfigCounterOptionsCustomField
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LogConfigDataAccessOptions: This is deprecated and has no effect. Do not
// use.
type LogConfigDataAccessOptions struct {
	// LogMode: This is deprecated and has no effect. Do not use.
	//
	// Possible values:
	//   "LOG_FAIL_CLOSED" - This is deprecated and has no effect. Do not use.
	//   "LOG_MODE_UNSPECIFIED" - This is deprecated and has no effect. Do not use.
	LogMode string `json:"logMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LogMode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LogMode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
	type NoMethod LogConfigDataAccessOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineImage: Represents a machine image resource. A machine image is a
// Compute Engine resource that stores all the configuration, metadata,
// permissions, and data from one or more disks required to create a Virtual
// machine (VM) instance. For more information, see Machine images.
type MachineImage struct {
	// CreationTimestamp: [Output Only] The creation timestamp for this machine
	// image in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// GuestFlush: [Input Only] Whether to attempt an application consistent
	// machine image by informing the OS to prepare for the snapshot process.
	GuestFlush bool `json:"guestFlush,omitempty"`
	// Id: [Output Only] A unique identifier for this machine image. The server
	// defines this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// InstanceProperties: [Output Only] Properties of source instance
	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
	// Kind: [Output Only] The resource type, which is always compute#machineImage
	// for machine image.
	Kind string `json:"kind,omitempty"`
	// MachineImageEncryptionKey: Encrypts the machine image using a
	// customer-supplied encryption key. After you encrypt a machine image using a
	// customer-supplied key, you must provide the same key if you use the machine
	// image later. For example, you must provide the encryption key when you
	// create an instance from the encrypted machine image in a future request.
	// Customer-supplied encryption keys do not protect access to metadata of the
	// machine image. If you do not provide an encryption key when creating the
	// machine image, then the machine image will be encrypted using an
	// automatically generated key and you do not need to provide a key to use the
	// machine image later.
	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SavedDisks: An array of Machine Image specific properties for disks attached
	// to the source instance
	SavedDisks []*SavedDisk `json:"savedDisks,omitempty"`
	// SelfLink: [Output Only] The URL for this machine image. The server defines
	// this URL.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied encryption key
	// of the disks attached to the source instance. Required if the source disk is
	// protected by a customer-supplied encryption key.
	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
	// SourceInstance: The source instance used to create the machine image. You
	// can provide this as a partial or full URL to the resource. For example, the
	// following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /instances/instance - projects/project/zones/zone/instances/instance
	SourceInstance string `json:"sourceInstance,omitempty"`
	// SourceInstanceProperties: [Output Only] DEPRECATED: Please use
	// instance_properties instead for source instance related properties. New
	// properties will not be added to this field.
	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
	// Status: [Output Only] The status of the machine image. One of the following
	// values: INVALID, CREATING, READY, DELETING, and UPLOADING.
	//
	// Possible values:
	//   "CREATING"
	//   "DELETING"
	//   "INVALID"
	//   "READY"
	//   "UPLOADING"
	Status string `json:"status,omitempty"`
	// StorageLocations: The regional or multi-regional Cloud Storage bucket
	// location where the machine image is stored.
	StorageLocations []string `json:"storageLocations,omitempty"`
	// TotalStorageBytes: [Output Only] Total size of the storage used by the
	// machine image.
	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineImage) MarshalJSON() ([]byte, error) {
	type NoMethod MachineImage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineImageList: A list of machine images.
type MachineImageList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of MachineImage resources.
	Items []*MachineImage `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#machineImagesListResponse for machine image lists.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *MachineImageListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineImageList) MarshalJSON() ([]byte, error) {
	type NoMethod MachineImageList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineImageListWarning: [Output Only] Informational warning message.
type MachineImageListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*MachineImageListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineImageListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod MachineImageListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MachineImageListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineImageListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod MachineImageListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineType: Represents a Machine Type resource. You can use specific
// machine types for your VM instances based on performance and pricing
// requirements. For more information, read Machine Types.
type MachineType struct {
	// Accelerators: [Output Only] A list of accelerator configurations assigned to
	// this machine type.
	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
	// Architecture: [Output Only] The architecture of the machine type.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// BundledLocalSsds: [Output Only] The configuration of bundled local SSD for
	// the machine type.
	BundledLocalSsds *BundledLocalSsds `json:"bundledLocalSsds,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- [Output Only] The deprecation status associated with this
	// machine type. Only applicable if the machine type is unavailable.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: [Output Only] An optional textual description of the resource.
	Description string `json:"description,omitempty"`
	// GuestCpus: [Output Only] The number of virtual CPUs that are available to
	// the instance.
	GuestCpus int64 `json:"guestCpus,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IsSharedCpu: [Output Only] Whether this machine type has a shared CPU. See
	// Shared-core machine types for more information.
	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
	// Kind: [Output Only] The type of the resource. Always compute#machineType for
	// machine types.
	Kind string `json:"kind,omitempty"`
	// MaximumPersistentDisks: [Output Only] Maximum persistent disks allowed.
	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent disks
	// size (GB) allowed.
	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
	// MemoryMb: [Output Only] The amount of physical memory available to the
	// instance, defined in MB.
	MemoryMb int64 `json:"memoryMb,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Zone: [Output Only] The name of the zone where the machine type resides,
	// such as us-central1-a.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Accelerators") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Accelerators") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineType) MarshalJSON() ([]byte, error) {
	type NoMethod MachineType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MachineTypeAccelerators struct {
	// GuestAcceleratorCount: Number of accelerator cards exposed to the guest.
	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
	// GuestAcceleratorType: The accelerator type resource name, not a full URL,
	// e.g. nvidia-tesla-t4.
	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GuestAcceleratorCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypeAccelerators
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MachineTypeAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of MachineTypesScopedList resources.
	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#machineTypeAggregatedList for aggregated lists of machine types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypeAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineTypeAggregatedListWarning: [Output Only] Informational warning
// message.
type MachineTypeAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypeAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MachineTypeAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypeAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineTypeList: Contains a list of machine types.
type MachineTypeList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of MachineType resources.
	Items []*MachineType `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#machineTypeList for
	// lists of machine types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *MachineTypeListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypeList) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypeList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineTypeListWarning: [Output Only] Informational warning message.
type MachineTypeListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*MachineTypeListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypeListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypeListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MachineTypeListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypeListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MachineTypesScopedList struct {
	// MachineTypes: [Output Only] A list of machine types contained in this scope.
	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
	// Warning: [Output Only] An informational warning that appears when the
	// machine types list is empty.
	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MachineTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MachineTypesScopedListWarning: [Output Only] An informational warning that
// appears when the machine types list is empty.
type MachineTypesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MachineTypesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod MachineTypesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ManagedInstance: A Managed Instance resource.
type ManagedInstance struct {
	// AllInstancesConfig: [Output Only] Current all-instances configuration
	// revision applied to this instance.
	AllInstancesConfig *ManagedInstanceAllInstancesConfig `json:"allInstancesConfig,omitempty"`
	// CurrentAction: [Output Only] The current action that the managed instance
	// group has scheduled for the instance. Possible values: - NONE The instance
	// is running, and the managed instance group does not have any scheduled
	// actions for this instance. - CREATING The managed instance group is creating
	// this instance. If the group fails to create this instance, it will try again
	// until it is successful. - CREATING_WITHOUT_RETRIES The managed instance
	// group is attempting to create this instance only once. If the group fails to
	// create this instance, it does not try again and the group's targetSize value
	// is decreased instead. - RECREATING The managed instance group is recreating
	// this instance. - DELETING The managed instance group is permanently deleting
	// this instance. - ABANDONING The managed instance group is abandoning this
	// instance. The instance will be removed from the instance group and from any
	// target pools that are associated with this group. - RESTARTING The managed
	// instance group is restarting the instance. - REFRESHING The managed instance
	// group is applying configuration changes to the instance without stopping it.
	// For example, the group can update the target pool list for an instance
	// without stopping that instance. - VERIFYING The managed instance group has
	// created the instance and it is in the process of being verified.
	//
	// Possible values:
	//   "ABANDONING" - The managed instance group is abandoning this instance. The
	// instance will be removed from the instance group and from any target pools
	// that are associated with this group.
	//   "CREATING" - The managed instance group is creating this instance. If the
	// group fails to create this instance, it will try again until it is
	// successful.
	//   "CREATING_ATOMICALLY" - The managed instance group is creating this
	// instance atomically.
	//   "CREATING_WITHOUT_RETRIES" - The managed instance group is attempting to
	// create this instance only once. If the group fails to create this instance,
	// it does not try again and the group's targetSize value is decreased.
	//   "DELETING" - The managed instance group is permanently deleting this
	// instance.
	//   "NONE" - The managed instance group has not scheduled any actions for this
	// instance.
	//   "QUEUING" - The managed instance group is queuing this instance.
	//   "RECREATING" - The managed instance group is recreating this instance.
	//   "REFRESHING" - The managed instance group is applying configuration
	// changes to the instance without stopping it. For example, the group can
	// update the target pool list for an instance without stopping that instance.
	//   "RESTARTING" - The managed instance group is restarting this instance.
	//   "RESUMING" - The managed instance group is resuming this instance.
	//   "STARTING" - The managed instance group is starting this instance.
	//   "STOPPING" - The managed instance group is stopping this instance.
	//   "SUSPENDING" - The managed instance group is suspending this instance.
	//   "VERIFYING" - The managed instance group is verifying this already created
	// instance. Verification happens every time the instance is (re)created or
	// restarted and consists of: 1. Waiting until health check specified as part
	// of this managed instance group's autohealing policy reports HEALTHY. Note:
	// Applies only if autohealing policy has a health check specified 2. Waiting
	// for addition verification steps performed as post-instance creation (subject
	// to future extensions).
	CurrentAction string `json:"currentAction,omitempty"`
	// Id: [Output only] The unique identifier for this resource. This field is
	// empty when instance does not exist.
	Id uint64 `json:"id,omitempty,string"`
	// Instance: [Output Only] The URL of the instance. The URL can exist even if
	// the instance has not yet been created.
	Instance string `json:"instance,omitempty"`
	// InstanceFlexibilityOverride: [Output Only] The overrides to instance
	// properties resulting from InstanceFlexibilityPolicy.
	InstanceFlexibilityOverride *ManagedInstanceInstanceFlexibilityOverride `json:"instanceFlexibilityOverride,omitempty"`
	// InstanceHealth: [Output Only] Health state of the instance per health-check.
	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
	// InstanceStatus: [Output Only] The status of the instance. This field is
	// empty when the instance does not exist.
	//
	// Possible values:
	//   "DEPROVISIONING" - The instance is halted and we are performing tear down
	// tasks like network deprogramming, releasing quota, IP, tearing down disks
	// etc.
	//   "PROVISIONING" - Resources are being allocated for the instance.
	//   "REPAIRING" - The instance is in repair.
	//   "RUNNING" - The instance is running.
	//   "STAGING" - All required resources have been allocated and the instance is
	// being started.
	//   "STOPPED" - The instance has stopped successfully.
	//   "STOPPING" - The instance is currently stopping (either being deleted or
	// killed).
	//   "SUSPENDED" - The instance has suspended.
	//   "SUSPENDING" - The instance is suspending.
	//   "TERMINATED" - The instance has stopped (either by explicit action or
	// underlying failure).
	InstanceStatus string `json:"instanceStatus,omitempty"`
	// InstanceTemplate: [Output Only] The intended template of the instance. This
	// field is empty when current_action is one of { DELETING, ABANDONING }.
	InstanceTemplate string `json:"instanceTemplate,omitempty"`
	// LastAttempt: [Output Only] Information about the last attempt to create or
	// delete the instance.
	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
	// Name: [Output Only] The name of the instance. The name always exists even if
	// the instance has not yet been created.
	Name string `json:"name,omitempty"`
	// PreservedStateFromConfig: [Output Only] Preserved state applied from
	// per-instance config for this instance.
	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
	// PreservedStateFromPolicy: [Output Only] Preserved state generated based on
	// stateful policy for this instance.
	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
	// PropertiesFromFlexibilityPolicy: [Output Only] Instance properties selected
	// for this instance resulting from InstanceFlexibilityPolicy.
	PropertiesFromFlexibilityPolicy *ManagedInstancePropertiesFromFlexibilityPolicy `json:"propertiesFromFlexibilityPolicy,omitempty"`
	// SizeInUnit: [Output only] The size of the VM represented by this Managed
	// Instance. This is how much this Managed Instance contributes to the size of
	// the group.
	SizeInUnit float64 `json:"sizeInUnit,omitempty"`
	// Tag: [Output Only] Tag describing the version.
	Tag string `json:"tag,omitempty"`
	// TargetStatus: [Output Only] The eventual status of the instance. The
	// instance group manager will not be identified as stable till each managed
	// instance reaches its targetStatus.
	//
	// Possible values:
	//   "ABANDONED" - The managed instance will eventually be ABANDONED, i.e.
	// dissociated from the managed instance group.
	//   "DELETED" - The managed instance will eventually be DELETED.
	//   "RUNNING" - The managed instance will eventually reach status RUNNING.
	//   "STOPPED" - The managed instance will eventually reach status TERMINATED.
	//   "SUSPENDED" - The managed instance will eventually reach status SUSPENDED.
	TargetStatus string `json:"targetStatus,omitempty"`
	// Version: [Output Only] Intended version of this instance.
	Version *ManagedInstanceVersion `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllInstancesConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllInstancesConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstance) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstance
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *ManagedInstance) UnmarshalJSON(data []byte) error {
	type NoMethod ManagedInstance
	var s1 struct {
		SizeInUnit gensupport.JSONFloat64 `json:"sizeInUnit"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.SizeInUnit = float64(s1.SizeInUnit)
	return nil
}

type ManagedInstanceAllInstancesConfig struct {
	// Revision: [Output Only] Current all-instances configuration revision. This
	// value is in RFC3339 text format.
	Revision string `json:"revision,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Revision") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Revision") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceAllInstancesConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceAllInstancesConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstanceInstanceFlexibilityOverride struct {
	// MachineType: The machine type to be used for this instance.
	MachineType string `json:"machineType,omitempty"`
	// ProvisioningModel: The provisioning model to be used for this instance.
	//
	// Possible values:
	//   "SPOT" - Heavily discounted, no guaranteed runtime.
	//   "STANDARD" - Standard provisioning with user controlled runtime, no
	// discounts.
	ProvisioningModel string `json:"provisioningModel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MachineType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MachineType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceInstanceFlexibilityOverride) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceInstanceFlexibilityOverride
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstanceInstanceHealth struct {
	// DetailedHealthState: [Output Only] The current detailed instance health
	// state.
	//
	// Possible values:
	//   "DRAINING" - The instance is being drained. The existing connections to
	// the instance have time to complete, but the new ones are being refused.
	//   "HEALTHY" - The instance is reachable i.e. a connection to the application
	// health checking endpoint can be established, and conforms to the
	// requirements defined by the health check.
	//   "TIMEOUT" - The instance is unreachable i.e. a connection to the
	// application health checking endpoint cannot be established, or the server
	// does not respond within the specified timeout.
	//   "UNHEALTHY" - The instance is reachable, but does not conform to the
	// requirements defined by the health check.
	//   "UNKNOWN" - The health checking system is aware of the instance but its
	// health is not known at the moment.
	DetailedHealthState string `json:"detailedHealthState,omitempty"`
	// HealthCheck: [Output Only] The URL for the health check that verifies
	// whether the instance is healthy.
	HealthCheck string `json:"healthCheck,omitempty"`
	// HealthState: [Output Only] The current instance health state. This field
	// will not get promoted to beta/GA and might be removed from alpha APIs after
	// 01/12/2019. Please use detailed_health_state field instead.
	//
	// Possible values:
	//   "HEALTHY" - The instance is reachable i.e. a connection to the application
	// health checking endpoint can be established, and conforms to the
	// requirements defined by the health check.
	//   "UNHEALTHY" - The instance is reachable, but does not conform to the
	// requirements defined by the health check.
	HealthState string `json:"healthState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DetailedHealthState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DetailedHealthState") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceInstanceHealth
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstanceLastAttempt struct {
	// Errors: [Output Only] Encountered errors during the last attempt to create
	// or delete the instance.
	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceLastAttempt
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors during
// the last attempt to create or delete the instance.
type ManagedInstanceLastAttemptErrors struct {
	// Errors: [Output Only] The array of errors encountered while processing this
	// operation.
	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceLastAttemptErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstanceLastAttemptErrorsErrors struct {
	// Code: [Output Only] The error type identifier for this error.
	Code string `json:"code,omitempty"`
	// ErrorDetails: [Output Only] An optional list of messages that contain the
	// error details. There is a set of defined message types to use for providing
	// details.The syntax depends on the error code. For example, QuotaExceededInfo
	// will have details when the error code is QUOTA_EXCEEDED.
	ErrorDetails []*ManagedInstanceLastAttemptErrorsErrorsErrorDetails `json:"errorDetails,omitempty"`
	// Location: [Output Only] Indicates the field in the request that caused the
	// error. This property is optional.
	Location string `json:"location,omitempty"`
	// Message: [Output Only] An optional, human-readable error message.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceLastAttemptErrorsErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstanceLastAttemptErrorsErrorsErrorDetails struct {
	ErrorInfo        *ErrorInfo         `json:"errorInfo,omitempty"`
	Help             *Help              `json:"help,omitempty"`
	LocalizedMessage *LocalizedMessage  `json:"localizedMessage,omitempty"`
	QuotaInfo        *QuotaExceededInfo `json:"quotaInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceLastAttemptErrorsErrorsErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceLastAttemptErrorsErrorsErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstancePropertiesFromFlexibilityPolicy struct {
	// MachineType: The machine type to be used for this instance.
	MachineType string `json:"machineType,omitempty"`
	// ProvisioningModel: The provisioning model to be used for this instance.
	//
	// Possible values:
	//   "SPOT" - Heavily discounted, no guaranteed runtime.
	//   "STANDARD" - Standard provisioning with user controlled runtime, no
	// discounts.
	ProvisioningModel string `json:"provisioningModel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MachineType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MachineType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstancePropertiesFromFlexibilityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstancePropertiesFromFlexibilityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstanceVersion struct {
	// InstanceTemplate: [Output Only] The intended template of the instance. This
	// field is empty when current_action is one of { DELETING, ABANDONING }.
	InstanceTemplate string `json:"instanceTemplate,omitempty"`
	// Name: [Output Only] Name of the version.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceTemplate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstanceVersion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Metadata: A metadata key/value entry.
type Metadata struct {
	// Fingerprint: Specifies a fingerprint for this request, which is essentially
	// a hash of the metadata's contents and used for optimistic locking. The
	// fingerprint is initially generated by Compute Engine and changes after every
	// request to modify or update metadata. You must always provide an up-to-date
	// fingerprint hash in order to update or change metadata, otherwise the
	// request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make a get() request to retrieve the resource.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Items: Array of key/value pairs. The total size of all keys and values must
	// be less than 512 KB.
	Items []*MetadataItems `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#metadata for
	// metadata.
	Kind string `json:"kind,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Metadata) MarshalJSON() ([]byte, error) {
	type NoMethod Metadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MetadataItems: Metadata
type MetadataItems struct {
	// Key: Key for the metadata entry. Keys must conform to the following regexp:
	// [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as
	// part of a URL in the metadata server. Additionally, to avoid ambiguity, keys
	// must not conflict with any other metadata keys for the project.
	Key string `json:"key,omitempty"`
	// Value: Value for the metadata entry. These are free-form strings, and only
	// have meaning as interpreted by the image running in the instance. The only
	// restriction placed on values is that their size must be less than or equal
	// to 262144 bytes (256 KiB).
	Value *string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MetadataItems) MarshalJSON() ([]byte, error) {
	type NoMethod MetadataItems
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MetadataCredentialsFromPlugin: [Deprecated] Custom authenticator
// credentials. Custom authenticator credentials.
type MetadataCredentialsFromPlugin struct {
	// Name: Plugin name.
	Name string `json:"name,omitempty"`
	// StructConfig: A text proto that conforms to a Struct type definition
	// interpreted by the plugin.
	StructConfig string `json:"structConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MetadataCredentialsFromPlugin) MarshalJSON() ([]byte, error) {
	type NoMethod MetadataCredentialsFromPlugin
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MetadataFilter: Opaque filter criteria used by load balancers to restrict
// routing configuration to a limited set of load balancing proxies. Proxies
// and sidecars involved in load balancing would typically present metadata to
// the load balancers that need to match criteria specified here. If a match
// takes place, the relevant configuration is made available to those proxies.
// For each metadataFilter in this list, if its filterMatchCriteria is set to
// MATCH_ANY, at least one of the filterLabels must match the corresponding
// label provided in the metadata. If its filterMatchCriteria is set to
// MATCH_ALL, then all of its filterLabels must match with corresponding labels
// provided in the metadata. An example for using metadataFilters would be: if
// load balancing involves Envoys, they receive routing configuration when
// values in metadataFilters match values supplied in of their XDS requests to
// loadbalancers.
type MetadataFilter struct {
	// FilterLabels: The list of label value pairs that must match labels in the
	// provided metadata based on filterMatchCriteria This list must not be empty
	// and can have at the most 64 entries.
	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
	// FilterMatchCriteria: Specifies how individual filter label matches within
	// the list of filterLabels and contributes toward the overall metadataFilter
	// match. Supported values are: - MATCH_ANY: at least one of the filterLabels
	// must have a matching label in the provided metadata. - MATCH_ALL: all
	// filterLabels must have matching labels in the provided metadata.
	//
	// Possible values:
	//   "MATCH_ALL" - Specifies that all filterLabels must match for the
	// metadataFilter to be considered a match.
	//   "MATCH_ANY" - Specifies that any filterLabel must match for the
	// metadataFilter to be considered a match.
	//   "NOT_SET" - Indicates that the match criteria was not set. A
	// metadataFilter must never be created with this value.
	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FilterLabels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MetadataFilter) MarshalJSON() ([]byte, error) {
	type NoMethod MetadataFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MetadataFilterLabelMatch: MetadataFilter label name value pairs that are
// expected to match corresponding labels presented as metadata to the load
// balancer.
type MetadataFilterLabelMatch struct {
	// Name: Name of metadata label. The name can have a maximum length of 1024
	// characters and must be at least 1 character long.
	Name string `json:"name,omitempty"`
	// Value: The value of the label must match the specified value. value can have
	// a maximum length of 1024 characters.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
	type NoMethod MetadataFilterLabelMatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Money: Represents an amount of money with its currency type.
type Money struct {
	// CurrencyCode: The three-letter currency code defined in ISO 4217.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Nanos: Number of nano (10^-9) units of the amount. The value must be between
	// -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos`
	// must be positive or zero. If `units` is zero, `nanos` can be positive, zero,
	// or negative. If `units` is negative, `nanos` must be negative or zero. For
	// example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
	Nanos int64 `json:"nanos,omitempty"`
	// Units: The whole units of the amount. For example if `currencyCode` is
	// "USD", then 1 unit is one US dollar.
	Units int64 `json:"units,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Money) MarshalJSON() ([]byte, error) {
	type NoMethod Money
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MultiMig: MultiMIG represents a group of Managed Instance Groups.
type MultiMig struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#multiMig for
	// MultiMIGs.
	Kind           string                  `json:"kind,omitempty"`
	LocationPolicy *MultiMigLocationPolicy `json:"locationPolicy,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Parts: User-provided names for Parts of MultiMIG and the Parts themselves.
	Parts map[string]MultiMigPart `json:"parts,omitempty"`
	// Region: [Output Only] URL of the region where the resource resides. Only
	// applicable for regional resources. You must specify this field as part of
	// the HTTP request URL. It is not settable as a field in the request body.
	Region string `json:"region,omitempty"`
	// SchedulingPolicy: Policy for handling provisioning and other
	// scheduling-related events.
	SchedulingPolicy *MultiMigSchedulingPolicy `json:"schedulingPolicy,omitempty"`
	// SelfLink: [Output only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string          `json:"selfLinkWithId,omitempty"`
	Status         *MultiMigStatus `json:"status,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMig) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MultiMigLocationPolicy: Policy regarding where to create MIGs Initially only
// zonal MIGs in the same zone are supported.
type MultiMigLocationPolicy struct {
	// ProvisioningZones: List of zones where MIGs will be provisioned. Should be
	// valid RFC1035 name
	ProvisioningZones []string `json:"provisioningZones,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProvisioningZones") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProvisioningZones") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMigLocationPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMigLocationPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MultiMigPart: Config for an MMIG part.
type MultiMigPart struct {
	// InstanceGroupManager: Link to an existing InstanceGroupManager that will be
	// adopted by a MultiMIG.
	InstanceGroupManager string `json:"instanceGroupManager,omitempty"`
	// InstanceGroupManagerProperties: InstanceGroupManager to be created by the
	// multiMig
	InstanceGroupManagerProperties *InstanceGroupManager `json:"instanceGroupManagerProperties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceGroupManager") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceGroupManager") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMigPart) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMigPart
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MultiMigSchedulingPolicy: Policy for handling provisioning and other
// scheduling-related events.
type MultiMigSchedulingPolicy struct {
	// Provisioning: How provisioning of MIGs should be scheduled (coordinated or
	// not)
	//
	// Possible values:
	//   "ANY" - Allows idependent lifecycles of parts.
	//   "COOORDINATED" - Requires all parts at the same time.
	Provisioning string `json:"provisioning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Provisioning") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Provisioning") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMigSchedulingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMigSchedulingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MultiMigStatus struct {
	MemberInstanceGroupManagers []string `json:"memberInstanceGroupManagers,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "MemberInstanceGroupManagers") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MemberInstanceGroupManagers") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMigStatus) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMigStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MultiMigsList struct {
	Etag string `json:"etag,omitempty"`
	// Id: Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of MultiMig resources.
	Items []*MultiMig `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: This token allows you to get the next page of results for
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: Informational warning message.
	Warning *MultiMigsListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMigsList) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMigsList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MultiMigsListWarning: Informational warning message.
type MultiMigsListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*MultiMigsListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMigsListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMigsListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MultiMigsListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MultiMigsListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod MultiMigsListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MutualTls: [Deprecated] Configuration for the mutual Tls mode for peer
// authentication. Configuration for the mutual Tls mode for peer
// authentication.
type MutualTls struct {
	// Mode: Specifies if the server TLS is configured to be strict or permissive.
	// This field can be set to one of the following: STRICT: Client certificate
	// must be presented, connection is in TLS. PERMISSIVE: Client certificate can
	// be omitted, connection can be either plaintext or TLS.
	//
	// Possible values:
	//   "INVALID"
	//   "PERMISSIVE" - Client certificate can be omitted, connection can be either
	// plaintext or TLS.
	//   "STRICT" - Client certificate must be presented, connection is in TLS.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s MutualTls) MarshalJSON() ([]byte, error) {
	type NoMethod MutualTls
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NamedPort: The named port. For example: <"http", 80>.
type NamedPort struct {
	// Name: The name for this named port. The name must be 1-63 characters long,
	// and comply with RFC1035.
	Name string `json:"name,omitempty"`
	// Port: The port number, which can be a value between 1 and 65535.
	Port int64 `json:"port,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NamedPort) MarshalJSON() ([]byte, error) {
	type NoMethod NamedPort
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NamedSet struct {
	// Elements: CEL expressions that are comparable to constructs of this set's
	// type (see Policy Language).
	Elements []*Expr `json:"elements,omitempty"`
	// Fingerprint: A fingerprint for the Named Set being applied to this Router,
	// which is essentially a hash of the Named Set used for optimistic locking.
	// The fingerprint is initially generated by Compute Engine and changes after
	// every request to modify or update the Named Set. You must always provide an
	// up-to-date fingerprint hash in order to update or change labels. To see the
	// latest fingerprint, make a getNamedSet() request to retrieve a Named Set.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Name: This set's name, which must be a resource ID segment and unique within
	// all named sets owned by the Router. Name should conform to RFC1035.
	Name string `json:"name,omitempty"`
	// Type: This named set's type
	//
	// Possible values:
	//   "NAMED_SET_TYPE_COMMUNITY" - The Named Set is a Community Named Set.
	//   "NAMED_SET_TYPE_PREFIX" - The Named Set is a Prefix Named Set.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Elements") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Elements") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NamedSet) MarshalJSON() ([]byte, error) {
	type NoMethod NamedSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NatIpInfo: Contains NAT IP information of a NAT config (i.e. usage status,
// mode).
type NatIpInfo struct {
	// NatIpInfoMappings: A list of all NAT IPs assigned to this NAT config.
	NatIpInfoMappings []*NatIpInfoNatIpInfoMapping `json:"natIpInfoMappings,omitempty"`
	// NatName: Name of the NAT config which the NAT IP belongs to.
	NatName string `json:"natName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NatIpInfoMappings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NatIpInfoMappings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NatIpInfo) MarshalJSON() ([]byte, error) {
	type NoMethod NatIpInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NatIpInfoNatIpInfoMapping: Contains information of a NAT IP.
type NatIpInfoNatIpInfoMapping struct {
	// Mode: Specifies whether NAT IP is auto or manual.
	//
	// Possible values:
	//   "AUTO"
	//   "MANUAL"
	Mode string `json:"mode,omitempty"`
	// NatIp: NAT IP address. For example: 203.0.113.11.
	NatIp string `json:"natIp,omitempty"`
	// Usage: Specifies whether NAT IP is currently serving at least one endpoint
	// or not.
	//
	// Possible values:
	//   "IN_USE"
	//   "UNUSED"
	Usage string `json:"usage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NatIpInfoNatIpInfoMapping) MarshalJSON() ([]byte, error) {
	type NoMethod NatIpInfoNatIpInfoMapping
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NatIpInfoResponse struct {
	// Result: [Output Only] A list of NAT IP information.
	Result []*NatIpInfo `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NatIpInfoResponse) MarshalJSON() ([]byte, error) {
	type NoMethod NatIpInfoResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Network: Represents a VPC Network resource. Networks connect resources to
// each other and to the internet. For more information, read Virtual Private
// Cloud (VPC) Network.
type Network struct {
	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
	// internal addresses that are legal on this network. This range is a CIDR
	// specification, for example: 192.168.0.0/16. Provided by the client when the
	// network is created.
	IPv4Range string `json:"IPv4Range,omitempty"`
	// AutoCreateSubnetworks: Must be set to create a VPC network. If not set, a
	// legacy network is created. When set to true, the VPC network is created in
	// auto mode. When set to false, the VPC network is created in custom mode. An
	// auto mode VPC network starts with one subnet per region. Each subnet has a
	// predetermined range as described in Auto mode VPC network IP ranges. For
	// custom mode VPC networks, you can add subnets using the subnetworks insert
	// method.
	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this field
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// EnableUlaInternalIpv6: Enable ULA internal ipv6 on this network. Enabling
	// this feature will assign a /48 from google defined ULA prefix fd20::/20. .
	EnableUlaInternalIpv6 bool `json:"enableUlaInternalIpv6,omitempty"`
	// FirewallPolicy: [Output Only] URL of the firewall policy the network is
	// associated with.
	FirewallPolicy string `json:"firewallPolicy,omitempty"`
	// GatewayIPv4: [Output Only] The gateway address for default routing out of
	// the network, selected by Google Cloud.
	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InternalIpv6Range: When enabling ula internal ipv6, caller optionally can
	// specify the /48 range they want from the google defined ULA prefix
	// fd20::/20. The input must be a valid /48 ULA IPv6 address and must be within
	// the fd20::/20. Operation will fail if the speficied /48 is already in used
	// by another resource. If the field is not speficied, then a /48 range will be
	// randomly allocated from fd20::/20 and returned via this field. .
	InternalIpv6Range string `json:"internalIpv6Range,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#network for
	// networks.
	Kind string `json:"kind,omitempty"`
	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this field is
	// 1300 and the maximum value is 8896. The suggested value is 1500, which is
	// the default MTU used on the Internet, or 8896 if you want to use Jumbo
	// frames. If unspecified, the value defaults to 1460.
	Mtu int64 `json:"mtu,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a
	// lowercase letter, and all following characters (except for the last
	// character) must be a dash, lowercase letter, or digit. The last character
	// must be a lowercase letter or digit.
	Name string `json:"name,omitempty"`
	// NetworkFirewallPolicyEnforcementOrder: The network firewall policy
	// enforcement order. Can be either AFTER_CLASSIC_FIREWALL or
	// BEFORE_CLASSIC_FIREWALL. Defaults to AFTER_CLASSIC_FIREWALL if the field is
	// not specified.
	//
	// Possible values:
	//   "AFTER_CLASSIC_FIREWALL"
	//   "BEFORE_CLASSIC_FIREWALL"
	NetworkFirewallPolicyEnforcementOrder string `json:"networkFirewallPolicyEnforcementOrder,omitempty"`
	// NetworkPlacement: A full or partial URL of the network placement to apply to
	// this network. This field can be set only at resource creation time. For
	// example, the following are valid URLs: -
	// https://www.googleapis.com/compute/alpha/projects/{project_id}/global/networkPlacements/{network_placement_name}
	// - projects/{project_id}/global/networkPlacements/{network_placement_name}
	NetworkPlacement string `json:"networkPlacement,omitempty"`
	// NetworkProfile: A full or partial URL of the network profile to apply to
	// this network. This field can be set only at resource creation time. For
	// example, the following are valid URLs: -
	// https://www.googleapis.com/compute/alpha/projects/{project_id}/global/networkProfiles/{network_profile_name}
	// - projects/{project_id}/global/networkProfiles/{network_profile_name}
	NetworkProfile string `json:"networkProfile,omitempty"`
	// Peerings: [Output Only] A list of network peerings for the resource.
	Peerings []*NetworkPeering `json:"peerings,omitempty"`
	// Region: [Output Only] URL of the region where the regional network resides.
	// This field is not applicable to global network. You must specify this field
	// as part of the HTTP request URL. It is not settable as a field in the
	// request body.
	Region string `json:"region,omitempty"`
	// RoutingConfig: The network-level routing configuration for this network.
	// Used by Cloud Router to determine what type of network-wide routing behavior
	// to enforce.
	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for all
	// subnetworks in this VPC network.
	Subnetworks []string `json:"subnetworks,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IPv4Range") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Network) MarshalJSON() ([]byte, error) {
	type NoMethod Network
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkAttachment: NetworkAttachments A network attachment resource ...
type NetworkAttachment struct {
	// ConnectionEndpoints: [Output Only] An array of connections for all the
	// producers connected to this network attachment.
	ConnectionEndpoints []*NetworkAttachmentConnectedEndpoint `json:"connectionEndpoints,omitempty"`
	// Possible values:
	//   "ACCEPT_AUTOMATIC"
	//   "ACCEPT_MANUAL"
	//   "INVALID"
	ConnectionPreference string `json:"connectionPreference,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. An up-to-date
	// fingerprint must be provided in order to patch.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Network: [Output Only] The URL of the network which the Network Attachment
	// belongs to. Practically it is inferred by fetching the network of the first
	// subnetwork associated. Because it is required that all the subnetworks must
	// be from the same network, it is assured that the Network Attachment belongs
	// to the same network as all the subnetworks.
	Network string `json:"network,omitempty"`
	// ProducerAcceptLists: Projects that are allowed to connect to this network
	// attachment. The project can be specified using its id or number.
	ProducerAcceptLists []string `json:"producerAcceptLists,omitempty"`
	// ProducerRejectLists: Projects that are not allowed to connect to this
	// network attachment. The project can be specified using its id or number.
	ProducerRejectLists []string `json:"producerRejectLists,omitempty"`
	// Region: [Output Only] URL of the region where the network attachment
	// resides. This field applies only to the region resource. You must specify
	// this field as part of the HTTP request URL. It is not settable as a field in
	// the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Subnetworks: An array of URLs where each entry is the URL of a subnet
	// provided by the service consumer to use for endpoints in the producers that
	// connect to this network attachment.
	Subnetworks []string `json:"subnetworks,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ConnectionEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectionEndpoints") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachment) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkAttachmentAggregatedList: Contains a list of
// NetworkAttachmentsScopedList.
type NetworkAttachmentAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkAttachmentsScopedList resources.
	Items map[string]NetworkAttachmentsScopedList `json:"items,omitempty"`
	Kind  string                                  `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkAttachmentAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkAttachmentAggregatedListWarning: [Output Only] Informational warning
// message.
type NetworkAttachmentAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkAttachmentAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkAttachmentAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkAttachmentConnectedEndpoint: [Output Only] A connection connected to
// this network attachment.
type NetworkAttachmentConnectedEndpoint struct {
	// IpAddress: The IPv4 address assigned to the producer instance network
	// interface. This value will be a range in case of Serverless.
	IpAddress string `json:"ipAddress,omitempty"`
	// Ipv6Address: The IPv6 address assigned to the producer instance network
	// interface. This is only assigned when the stack types of both the instance
	// network interface and the consumer subnet are IPv4_IPv6.
	Ipv6Address string `json:"ipv6Address,omitempty"`
	// ProjectIdOrNum: The project id or number of the interface to which the IP
	// was assigned.
	ProjectIdOrNum string `json:"projectIdOrNum,omitempty"`
	// SecondaryIpCidrRanges: Alias IP ranges from the same subnetwork.
	SecondaryIpCidrRanges []string `json:"secondaryIpCidrRanges,omitempty"`
	// Status: The status of a connected endpoint to this network attachment.
	//
	// Possible values:
	//   "ACCEPTED" - The consumer allows traffic from the producer to reach its
	// VPC.
	//   "CLOSED" - The consumer network attachment no longer exists.
	//   "NEEDS_ATTENTION" - The consumer needs to take further action before
	// traffic can be served.
	//   "PENDING" - The consumer neither allows nor prohibits traffic from the
	// producer to reach its VPC.
	//   "REJECTED" - The consumer prohibits traffic from the producer to reach its
	// VPC.
	//   "STATUS_UNSPECIFIED"
	Status string `json:"status,omitempty"`
	// Subnetwork: The subnetwork used to assign the IP to the producer instance
	// network interface.
	Subnetwork string `json:"subnetwork,omitempty"`
	// SubnetworkCidrRange: [Output Only] The CIDR range of the subnet from which
	// the IPv4 internal IP was allocated from.
	SubnetworkCidrRange string `json:"subnetworkCidrRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentConnectedEndpoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkAttachmentList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkAttachment resources.
	Items []*NetworkAttachment `json:"items,omitempty"`
	Kind  string               `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkAttachmentListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkAttachmentListWarning: [Output Only] Informational warning message.
type NetworkAttachmentListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkAttachmentListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkAttachmentListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkAttachmentsScopedList struct {
	// NetworkAttachments: A list of NetworkAttachments contained in this scope.
	NetworkAttachments []*NetworkAttachment `json:"networkAttachments,omitempty"`
	// Warning: Informational warning which replaces the list of network
	// attachments when the list is empty.
	Warning *NetworkAttachmentsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkAttachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkAttachments") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkAttachmentsScopedListWarning: Informational warning which replaces
// the list of network attachments when the list is empty.
type NetworkAttachmentsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkAttachmentsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkAttachmentsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkAttachmentsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEdgeSecurityService: Represents a Google Cloud Armor network edge
// security service resource.
type NetworkEdgeSecurityService struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a NetworkEdgeSecurityService. An up-to-date
	// fingerprint must be provided in order to update the
	// NetworkEdgeSecurityService, otherwise the request will fail with error 412
	// conditionNotMet. To see the latest fingerprint, make a get() request to
	// retrieve a NetworkEdgeSecurityService.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output only] Type of the resource. Always
	// compute#networkEdgeSecurityService for NetworkEdgeSecurityServices
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] URL of the region where the resource resides. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Region string `json:"region,omitempty"`
	// SecurityPolicy: The resource URL for the network edge security service
	// associated with this network edge security service.
	SecurityPolicy string `json:"securityPolicy,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEdgeSecurityService) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEdgeSecurityService
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEdgeSecurityServiceAggregatedList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkEdgeSecurityServicesScopedList resources.
	Items map[string]NetworkEdgeSecurityServicesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge
	// Security Services.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkEdgeSecurityServiceAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEdgeSecurityServiceAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEdgeSecurityServiceAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEdgeSecurityServiceAggregatedListWarning: [Output Only] Informational
// warning message.
type NetworkEdgeSecurityServiceAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkEdgeSecurityServiceAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEdgeSecurityServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEdgeSecurityServiceAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEdgeSecurityServiceAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEdgeSecurityServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEdgeSecurityServiceAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEdgeSecurityServicesScopedList struct {
	// NetworkEdgeSecurityServices: A list of NetworkEdgeSecurityServices contained
	// in this scope.
	NetworkEdgeSecurityServices []*NetworkEdgeSecurityService `json:"networkEdgeSecurityServices,omitempty"`
	// Warning: Informational warning which replaces the list of security policies
	// when the list is empty.
	Warning *NetworkEdgeSecurityServicesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "NetworkEdgeSecurityServices") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEdgeSecurityServices") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEdgeSecurityServicesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEdgeSecurityServicesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEdgeSecurityServicesScopedListWarning: Informational warning which
// replaces the list of security policies when the list is empty.
type NetworkEdgeSecurityServicesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkEdgeSecurityServicesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEdgeSecurityServicesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEdgeSecurityServicesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEdgeSecurityServicesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEdgeSecurityServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEdgeSecurityServicesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpoint: The network endpoint.
type NetworkEndpoint struct {
	// Annotations: Metadata defined as annotations on the network endpoint.
	Annotations map[string]string `json:"annotations,omitempty"`
	// ClientDestinationPort: Represents the port number to which PSC consumer
	// sends packets. Only valid for network endpoint groups created with
	// GCE_VM_IP_PORTMAP endpoint type.
	ClientDestinationPort int64 `json:"clientDestinationPort,omitempty"`
	// Fqdn: Optional fully qualified domain name of network endpoint. This can
	// only be specified when NetworkEndpointGroup.network_endpoint_type is
	// NON_GCP_FQDN_PORT.
	Fqdn string `json:"fqdn,omitempty"`
	// Instance: The name or a URL of VM instance of this network endpoint. This
	// field is required for network endpoints of type GCE_VM_IP and
	// GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint
	// group (for zonal NEGs) or in the zone within the region of the NEG (for
	// regional NEGs). If the ipAddress is specified, it must belongs to the VM
	// instance. The name must be 1-63 characters long, and comply with RFC1035 or
	// be a valid URL pointing to an existing instance.
	Instance string `json:"instance,omitempty"`
	// IpAddress: Optional IPv4 address of network endpoint. The IP address must
	// belong to a VM in Compute Engine (either the primary IP or as part of an
	// aliased IP range). If the IP address is not specified, then the primary IP
	// address for the VM instance in the network that the network endpoint group
	// belongs to will be used. This field is redundant and need not be set for
	// network endpoints of type GCE_VM_IP. If set, it must be set to the primary
	// internal IP address of the attached VM instance that matches the subnetwork
	// of the NEG. The primary internal IP address from any NIC of a multi-NIC VM
	// instance can be added to a NEG as long as it matches the NEG subnetwork.
	IpAddress string `json:"ipAddress,omitempty"`
	// Ipv6Address: Optional IPv6 address of network endpoint.
	Ipv6Address string `json:"ipv6Address,omitempty"`
	// Port: Optional port number of network endpoint. If not specified, the
	// defaultPort for the network endpoint group will be used. This field can not
	// be set for network endpoints of type GCE_VM_IP.
	Port int64 `json:"port,omitempty"`
	// Zone: The name of the zone where the instance hosting the network endpoint
	// is located (valid only for regional GCE_VM_IP_PORT NEGs). It should comply
	// with RFC1035. The zone must belong to the region of the Network Endpoint
	// Group.
	Zone string `json:"zone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Annotations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Annotations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpoint) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroup: Represents a collection of network endpoints. A
// network endpoint group (NEG) defines how a set of endpoints should be
// reached, whether they are reachable, and where they are located. For more
// information about using NEGs for different use cases, see Network endpoint
// groups overview.
type NetworkEndpointGroup struct {
	// Annotations: Metadata defined as annotations on the network endpoint group.
	Annotations map[string]string `json:"annotations,omitempty"`
	// AppEngine: Only valid when networkEndpointType is SERVERLESS. Only one of
	// cloudRun, appEngine or cloudFunction may be set.
	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
	// CloudFunction: Only valid when networkEndpointType is SERVERLESS. Only one
	// of cloudRun, appEngine or cloudFunction may be set.
	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
	// CloudRun: Only valid when networkEndpointType is SERVERLESS. Only one of
	// cloudRun, appEngine or cloudFunction may be set.
	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DefaultPort: The default port used if the port number is not specified in
	// the network endpoint. If the network endpoint type is either GCE_VM_IP,
	// SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified.
	DefaultPort int64 `json:"defaultPort,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#networkEndpointGroup for network endpoint group.
	Kind string `json:"kind,omitempty"`
	// LoadBalancer: This field is only valid when the network endpoint group is
	// used for load balancing. [Deprecated] This field is deprecated.
	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Network: The URL of the network to which all network endpoints in the NEG
	// belong. Uses default project network if unspecified.
	Network string `json:"network,omitempty"`
	// NetworkEndpointType: Type of network endpoints in this network endpoint
	// group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT,
	// INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT,
	// GCE_VM_IP_PORTMAP.
	//
	// Possible values:
	//   "GCE_VM_IP" - The network endpoint is represented by an IP address.
	//   "GCE_VM_IP_PORT" - The network endpoint is represented by IP address and
	// port pair.
	//   "GCE_VM_IP_PORTMAP" - The network endpoint is represented by an IP, Port
	// and Client Destination Port.
	//   "INTERNET_FQDN_PORT" - The network endpoint is represented by fully
	// qualified domain name and port.
	//   "INTERNET_IP_PORT" - The network endpoint is represented by an internet IP
	// address and port.
	//   "NON_GCP_PRIVATE_IP_PORT" - The network endpoint is represented by an IP
	// address and port. The endpoint belongs to a VM or pod running in a
	// customer's on-premises.
	//   "PRIVATE_SERVICE_CONNECT" - The network endpoint is either public Google
	// APIs or services exposed by other GCP Project with a Service Attachment. The
	// connection is set up by private service connect
	//   "SERVERLESS" - The network endpoint is handled by specified serverless
	// infrastructure.
	NetworkEndpointType string                       `json:"networkEndpointType,omitempty"`
	PscData             *NetworkEndpointGroupPscData `json:"pscData,omitempty"`
	// PscTargetService: The target service url used to set up private service
	// connection to a Google API or a PSC Producer Service Attachment. An example
	// value is: asia-northeast3-cloudkms.googleapis.com
	PscTargetService string `json:"pscTargetService,omitempty"`
	// Region: [Output Only] The URL of the region where the network endpoint group
	// is located.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ServerlessDeployment: Only valid when networkEndpointType is SERVERLESS.
	// Only one of cloudRun, appEngine, cloudFunction or serverlessDeployment may
	// be set.
	ServerlessDeployment *NetworkEndpointGroupServerlessDeployment `json:"serverlessDeployment,omitempty"`
	// Size: [Output only] Number of network endpoints in the network endpoint
	// group.
	Size int64 `json:"size,omitempty"`
	// Subnetwork: Optional URL of the subnetwork to which all network endpoints in
	// the NEG belong.
	Subnetwork string `json:"subnetwork,omitempty"`
	// Type: Specify the type of this network endpoint group. Only LOAD_BALANCING
	// is valid for now.
	//
	// Possible values:
	//   "LOAD_BALANCING" - The network endpoint group is a backend of a load
	// balancer.
	Type string `json:"type,omitempty"`
	// Zone: [Output Only] The URL of the zone where the network endpoint group is
	// located.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Annotations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Annotations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkEndpointGroupsScopedList resources.
	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#networkEndpointGroupAggregatedList for aggregated lists of network
	// endpoint groups.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupAggregatedListWarning: [Output Only] Informational
// warning message.
type NetworkEndpointGroupAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupAppEngine: Configuration for an App Engine network
// endpoint group (NEG). The service is optional, may be provided explicitly or
// in the URL mask. The version is optional and can only be provided explicitly
// or in the URL mask when service is present. Note: App Engine service must be
// in the same project and located in the same region as the Serverless NEG.
type NetworkEndpointGroupAppEngine struct {
	// Service: Optional serving service. The service name is case-sensitive and
	// must be 1-63 characters long. Example value: default, my-service.
	Service string `json:"service,omitempty"`
	// UrlMask: An URL mask is one of the main components of the Cloud Function. A
	// template to parse service and version fields from a request URL. URL mask
	// allows for routing to multiple App Engine services without having to create
	// multiple Network Endpoint Groups and backend services. For example, the
	// request URLs foo1-dot-appname.appspot.com/v1 and
	// foo1-dot-appname.appspot.com/v2 can be backed by the same Serverless NEG
	// with URL mask <service>-dot-appname.appspot.com/<version>. The URL mask will
	// parse them to { service = "foo1", version = "v1" } and { service = "foo1",
	// version = "v2" } respectively.
	UrlMask string `json:"urlMask,omitempty"`
	// Version: Optional serving version. The version name is case-sensitive and
	// must be 1-100 characters long. Example value: v1, v2.
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Service") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Service") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupAppEngine
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
// network endpoint group (NEG). The function must be provided explicitly or in
// the URL mask. Note: Cloud Function must be in the same project and located
// in the same region as the Serverless NEG.
type NetworkEndpointGroupCloudFunction struct {
	// Function: A user-defined name of the Cloud Function. The function name is
	// case-sensitive and must be 1-63 characters long. Example value: func1.
	Function string `json:"function,omitempty"`
	// UrlMask: An URL mask is one of the main components of the Cloud Function. A
	// template to parse function field from a request URL. URL mask allows for
	// routing to multiple Cloud Functions without having to create multiple
	// Network Endpoint Groups and backend services. For example, request URLs
	// mydomain.com/function1 and mydomain.com/function2 can be backed by the same
	// Serverless NEG with URL mask /<function>. The URL mask will parse them to {
	// function = "function1" } and { function = "function2" } respectively.
	UrlMask string `json:"urlMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Function") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Function") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupCloudFunction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network endpoint
// group (NEG). The service must be provided explicitly or in the URL mask. The
// tag is optional, may be provided explicitly or in the URL mask. Note: Cloud
// Run service must be in the same project and located in the same region as
// the Serverless NEG.
type NetworkEndpointGroupCloudRun struct {
	// Service: Cloud Run service is the main resource of Cloud Run. The service
	// must be 1-63 characters long, and comply with RFC1035. Example value:
	// "run-service".
	Service string `json:"service,omitempty"`
	// Tag: Optional Cloud Run tag represents the "named-revision" to provide
	// additional fine-grained traffic routing information. The tag must be 1-63
	// characters long, and comply with RFC1035. Example value: "revision-0010".
	Tag string `json:"tag,omitempty"`
	// UrlMask: An URL mask is one of the main components of the Cloud Function. A
	// template to parse <service> and <tag> fields from a request URL. URL mask
	// allows for routing to multiple Run services without having to create
	// multiple network endpoint groups and backend services. For example, request
	// URLs foo1.domain.com/bar1 and foo1.domain.com/bar2 can be backed by the same
	// Serverless Network Endpoint Group (NEG) with URL mask
	// <tag>.domain.com/<service>. The URL mask will parse them to {
	// service="bar1", tag="foo1" } and { service="bar2", tag="foo2" }
	// respectively.
	UrlMask string `json:"urlMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Service") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Service") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupCloudRun
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific fields
// for network endpoint group.
type NetworkEndpointGroupLbNetworkEndpointGroup struct {
	// DefaultPort: The default port used if the port number is not specified in
	// the network endpoint. If the network endpoint type is either GCE_VM_IP,
	// SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified.
	// [Deprecated] This field is deprecated.
	DefaultPort int64 `json:"defaultPort,omitempty"`
	// Network: The URL of the network to which all network endpoints in the NEG
	// belong. Uses default project network if unspecified. [Deprecated] This field
	// is deprecated.
	Network string `json:"network,omitempty"`
	// Subnetwork: Optional URL of the subnetwork to which all network endpoints in
	// the NEG belong. [Deprecated] This field is deprecated.
	Subnetwork string `json:"subnetwork,omitempty"`
	// Zone: [Output Only] The URL of the zone where the network endpoint group is
	// located. [Deprecated] This field is deprecated.
	Zone string `json:"zone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultPort") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkEndpointGroup resources.
	Items []*NetworkEndpointGroup `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#networkEndpointGroupList for network endpoint group lists.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupListWarning: [Output Only] Informational warning
// message.
type NetworkEndpointGroupListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupPscData: All data that is specifically relevant to only
// network endpoint groups of type PRIVATE_SERVICE_CONNECT.
type NetworkEndpointGroupPscData struct {
	// ConsumerPscAddress: [Output Only] Address allocated from given subnetwork
	// for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as
	// an endpoint in L7 PSC-XLB.
	ConsumerPscAddress string `json:"consumerPscAddress,omitempty"`
	// ProducerPort: The psc producer port is used to connect PSC NEG with specific
	// port on the PSC Producer side; should only be used for the
	// PRIVATE_SERVICE_CONNECT NEG type
	ProducerPort int64 `json:"producerPort,omitempty"`
	// PscConnectionId: [Output Only] The PSC connection id of the PSC Network
	// Endpoint Group Consumer.
	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
	// PscConnectionStatus: [Output Only] The connection status of the PSC
	// Forwarding Rule.
	//
	// Possible values:
	//   "ACCEPTED" - The connection has been accepted by the producer.
	//   "CLOSED" - The connection has been closed by the producer and will not
	// serve traffic going forward.
	//   "NEEDS_ATTENTION" - The connection has been accepted by the producer, but
	// the producer needs to take further action before the forwarding rule can
	// serve traffic.
	//   "PENDING" - The connection is pending acceptance by the producer.
	//   "REJECTED" - The connection has been rejected by the producer.
	//   "STATUS_UNSPECIFIED"
	PscConnectionStatus string `json:"pscConnectionStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsumerPscAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsumerPscAddress") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupPscData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupPscData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupServerlessDeployment: Configuration for a serverless
// network endpoint group (NEG). The platform must be provided. Note: The
// target backend service must be in the same project and located in the same
// region as the Serverless NEG.
type NetworkEndpointGroupServerlessDeployment struct {
	// Platform: The platform of the backend target(s) of this NEG. The only
	// supported value is API Gateway: apigateway.googleapis.com.
	Platform string `json:"platform,omitempty"`
	// Resource: The user-defined name of the workload/instance. This value must be
	// provided explicitly or in the urlMask. The resource identified by this value
	// is platform-specific and is as follows: 1. API Gateway: The gateway ID 2.
	// App Engine: The service name 3. Cloud Functions: The function name 4. Cloud
	// Run: The service name
	Resource string `json:"resource,omitempty"`
	// UrlMask: An URL mask is one of the main components of the Cloud Function. A
	// template to parse platform-specific fields from a request URL. URL mask
	// allows for routing to multiple resources on the same serverless platform
	// without having to create multiple Network Endpoint Groups and backend
	// resources. The fields parsed by this template are platform-specific and are
	// as follows: 1. API Gateway: The gateway ID 2. App Engine: The service and
	// version 3. Cloud Functions: The function name 4. Cloud Run: The service and
	// tag
	UrlMask string `json:"urlMask,omitempty"`
	// Version: The optional resource version. The version identified by this value
	// is platform-specific and is follows: 1. API Gateway: Unused 2. App Engine:
	// The service version 3. Cloud Functions: Unused 4. Cloud Run: The service tag
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Platform") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Platform") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupServerlessDeployment) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupServerlessDeployment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsAttachEndpointsRequest struct {
	// NetworkEndpoints: The list of network endpoints to be attached.
	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpoints") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsDetachEndpointsRequest struct {
	// NetworkEndpoints: The list of network endpoints to be detached.
	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpoints") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsListEndpointsRequest struct {
	// EndpointFilters: Optional list of endpoints to query. This is a more
	// efficient but also limited version of filter parameter. Endpoints in the
	// filter must have ip_address and port fields populated, other fields are not
	// supported.
	EndpointFilters []*NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter `json:"endpointFilters,omitempty"`
	// HealthStatus: Optional query parameter for showing the health status of each
	// network endpoint. Valid options are SKIP or SHOW. If you don't specify this
	// parameter, the health status of network endpoints will not be provided.
	//
	// Possible values:
	//   "SHOW" - Show the health status for each network endpoint. Impacts latency
	// of the call.
	//   "SKIP" - Health status for network endpoints will not be provided.
	HealthStatus string `json:"healthStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndpointFilters") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndpointFilters") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsListEndpointsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter struct {
	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpoint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpoint") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsListNetworkEndpoints struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkEndpointWithHealthStatus resources.
	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#networkEndpointGroupsListNetworkEndpoints for the list of network
	// endpoints in the specified network endpoint group.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
// Informational warning message.
type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsScopedList struct {
	// NetworkEndpointGroups: [Output Only] The list of network endpoint groups
	// that are contained in this scope.
	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
	// Warning: [Output Only] An informational warning that replaces the list of
	// network endpoint groups when the list is empty.
	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpointGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkEndpointGroupsScopedListWarning: [Output Only] An informational
// warning that replaces the list of network endpoint groups when the list is
// empty.
type NetworkEndpointGroupsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointGroupsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkEndpointWithHealthStatus struct {
	// Healths: [Output only] The health status of network endpoint;
	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
	// NetworkEndpoint: [Output only] The network endpoint;
	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Healths") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Healths") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointWithHealthStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkInterface: A network interface resource attached to an instance.
type NetworkInterface struct {
	// AccessConfigs: An array of configurations for this interface. Currently,
	// only one access config, ONE_TO_ONE_NAT, is supported. If there are no
	// accessConfigs specified, then this instance will have no external internet
	// access.
	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
	// AliasIpRanges: An array of alias IP ranges for this network interface. You
	// can only specify this field for network interfaces in VPC networks.
	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
	// Fingerprint: Fingerprint hash of contents stored in this network interface.
	// This field will be ignored when inserting an Instance or adding a
	// NetworkInterface. An up-to-date fingerprint must be provided in order to
	// update the NetworkInterface. The request will fail with error 400 Bad
	// Request if the fingerprint is not provided, or 412 Precondition Failed if
	// the fingerprint is out of date.
	Fingerprint string `json:"fingerprint,omitempty"`
	// IgmpQuery: Indicate whether igmp query is enabled on the network interface
	// or not. If enabled, also indicates the version of IGMP supported.
	//
	// Possible values:
	//   "IGMP_QUERY_DISABLED" - The network interface has disabled IGMP query.
	//   "IGMP_QUERY_V2" - The network interface has enabled IGMP query - v2.
	IgmpQuery string `json:"igmpQuery,omitempty"`
	// InternalIpv6PrefixLength: The prefix length of the primary internal IPv6
	// range.
	InternalIpv6PrefixLength int64 `json:"internalIpv6PrefixLength,omitempty"`
	// Ipv6AccessConfigs: An array of IPv6 access configurations for this
	// interface. Currently, only one IPv6 access config, DIRECT_IPV6, is
	// supported. If there is no ipv6AccessConfig specified, then this instance
	// will have no external IPv6 Internet access.
	Ipv6AccessConfigs []*AccessConfig `json:"ipv6AccessConfigs,omitempty"`
	// Ipv6AccessType: [Output Only] One of EXTERNAL, INTERNAL to indicate whether
	// the IP can be accessed from the Internet. This field is always inherited
	// from its subnetwork. Valid only if stackType is IPV4_IPV6.
	//
	// Possible values:
	//   "EXTERNAL" - This network interface can have external IPv6.
	//   "INTERNAL" - This network interface can have internal IPv6.
	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
	// Ipv6Address: An IPv6 internal network address for this network interface. To
	// use a static internal IP address, it must be unused and in the same region
	// as the instance's zone. If not specified, Google Cloud will automatically
	// assign an internal IPv6 address from the instance's subnetwork.
	Ipv6Address string `json:"ipv6Address,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#networkInterface
	// for network interfaces.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] The name of the network interface, which is generated by
	// the server. For a VM, the network interface uses the nicN naming format.
	// Where N is a value between 0 and 7. The default interface value is nic0.
	Name string `json:"name,omitempty"`
	// Network: URL of the VPC network resource for this instance. When creating an
	// instance, if neither the network nor the subnetwork is specified, the
	// default network global/networks/default is used. If the selected project
	// doesn't have the default network, you must specify a network or subnet. If
	// the network is not specified but the subnetwork is specified, the network is
	// inferred. If you specify this property, you can specify the network as a
	// full or partial URL. For example, the following are all valid URLs: -
	// https://www.googleapis.com/compute/v1/projects/project/global/networks/
	// network - projects/project/global/networks/network - global/networks/default
	Network string `json:"network,omitempty"`
	// NetworkAttachment: The URL of the network attachment that this interface
	// should connect to in the following format:
	// projects/{project_number}/regions/{region_name}/networkAttachments/{network_a
	// ttachment_name}.
	NetworkAttachment string `json:"networkAttachment,omitempty"`
	// NetworkIP: An IPv4 internal IP address to assign to the instance for this
	// network interface. If not specified by the user, an unused internal IP is
	// assigned by the system.
	NetworkIP string `json:"networkIP,omitempty"`
	// NicType: The type of vNIC to be used on this interface. This may be gVNIC or
	// VirtioNet.
	//
	// Possible values:
	//   "GVNIC" - GVNIC
	//   "IDPF" - IDPF
	//   "UNSPECIFIED_NIC_TYPE" - No type specified.
	//   "VIRTIO_NET" - VIRTIO
	NicType string `json:"nicType,omitempty"`
	// ParentNicName: Name of the parent network interface of a VLAN based nic. If
	// this field is specified, vlan must be set.
	ParentNicName string `json:"parentNicName,omitempty"`
	// QueueCount: The networking queue count that's specified by users for the
	// network interface. Both Rx and Tx queues will be set to this number. It'll
	// be empty if not specified by the users.
	QueueCount int64 `json:"queueCount,omitempty"`
	// StackType: The stack type for this network interface. To assign only IPv4
	// addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use
	// IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set
	// at instance creation and update network interface operations.
	//
	// Possible values:
	//   "IPV4_IPV6" - The network interface can have both IPv4 and IPv6 addresses.
	//   "IPV4_ONLY" - The network interface will be assigned IPv4 address.
	//   "IPV6_ONLY" - The network interface will only be assigned IPv6 addresses.
	StackType string `json:"stackType,omitempty"`
	// Subinterfaces: SubInterfaces help enable L2 communication for the instance
	// over subnetworks that support L2. Every network interface will get a default
	// untagged (vlan not specified) subinterface. Users can specify additional
	// tagged subinterfaces which are sub-fields to the Network Interface.
	Subinterfaces []*NetworkInterfaceSubInterface `json:"subinterfaces,omitempty"`
	// Subnetwork: The URL of the Subnetwork resource for this instance. If the
	// network resource is in legacy mode, do not specify this field. If the
	// network is in auto subnet mode, specifying the subnetwork is optional. If
	// the network is in custom subnet mode, specifying the subnetwork is required.
	// If you specify this field, you can specify the subnetwork as a full or
	// partial URL. For example, the following are all valid URLs: -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /subnetworks/subnetwork - regions/region/subnetworks/subnetwork
	Subnetwork string `json:"subnetwork,omitempty"`
	// Vlan: VLAN tag of a VLAN based network interface, must be in range from 2 to
	// 4094 inclusively. This field is mandatory if the parent network interface
	// name is set.
	Vlan int64 `json:"vlan,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessConfigs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkInterface) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkInterface
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkInterfaceSubInterface struct {
	// IpAddress: An IPv4 internal IP address to assign to the instance for this
	// subinterface. If specified, ip_allocation_mode should be set to ALLOCATE_IP.
	IpAddress string `json:"ipAddress,omitempty"`
	// Possible values:
	//   "ALLOCATE_IP" - Allocates an internal IPv4 IP address from subnets
	// secondary IP Range.
	//   "DO_NOT_ALLOCATE_IP" - No IP allocation is done for the subinterface.
	//   "UNSPECIFIED"
	IpAllocationMode string `json:"ipAllocationMode,omitempty"`
	// Subnetwork: If specified, this subnetwork must belong to the same network as
	// that of the network interface. If not specified the subnet of network
	// interface will be used. If you specify this property, you can specify the
	// subnetwork as a full or partial URL. For example, the following are all
	// valid URLs: -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /subnetworks/subnetwork - regions/region/subnetworks/subnetwork
	Subnetwork string `json:"subnetwork,omitempty"`
	// Vlan: VLAN tag. Should match the VLAN(s) supported by the subnetwork to
	// which this subinterface is connecting.
	Vlan int64 `json:"vlan,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkInterfaceSubInterface) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkInterfaceSubInterface
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkList: Contains a list of networks.
type NetworkList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Network resources.
	Items []*Network `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#networkList for lists
	// of networks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkListWarning: [Output Only] Informational warning message.
type NetworkListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkPeering: A network peering attached to a network resource. The
// message includes the peering name, peer network, peering state, and a flag
// indicating whether Google Compute Engine should automatically create routes
// for the peering.
type NetworkPeering struct {
	// AdvertisePeerSubnetsViaRouters: Whether Cloud Routers in this network can
	// automatically advertise subnets from the peer network.
	AdvertisePeerSubnetsViaRouters bool `json:"advertisePeerSubnetsViaRouters,omitempty"`
	// AutoCreateRoutes: This field will be deprecated soon. Use the
	// exchange_subnet_routes field instead. Indicates whether full mesh
	// connectivity is created and managed automatically between peered networks.
	// Currently this field should always be true since Google Compute Engine will
	// automatically create and manage subnetwork routes between two networks when
	// peering state is ACTIVE.
	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is created
	// and managed automatically between peered networks. Currently this field
	// should always be true since Google Compute Engine will automatically create
	// and manage subnetwork routes between two networks when peering state is
	// ACTIVE.
	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
	// ExportCustomRoutes: Whether to export the custom routes to peer network. The
	// default value is false.
	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP range
	// are exported. The default value is true, all subnet routes are exported.
	// IPv4 special-use ranges are always exported to peers and are not controlled
	// by this field.
	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
	// ImportCustomRoutes: Whether to import the custom routes from peer network.
	// The default value is false.
	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP range
	// are imported. The default value is false. IPv4 special-use ranges are always
	// imported from peers and are not controlled by this field.
	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
	// Name: Name of this peering. Provided by the client when the peering is
	// created. The name must comply with RFC1035. Specifically, the name must be
	// 1-63 characters long and match regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
	// letter, and all the following characters must be a dash, lowercase letter,
	// or digit, except the last character, which cannot be a dash.
	Name string `json:"name,omitempty"`
	// Network: The URL of the peer network. It can be either full URL or partial
	// URL. The peer network may belong to a different project. If the partial URL
	// does not contain project, it is assumed that the peer network is in the same
	// project as the current network.
	Network string `json:"network,omitempty"`
	// PeerMtu: Maximum Transmission Unit in bytes.
	PeerMtu int64 `json:"peerMtu,omitempty"`
	// StackType: Which IP version(s) of traffic and routes are allowed to be
	// imported or exported between peer networks. The default value is IPV4_ONLY.
	//
	// Possible values:
	//   "IPV4_IPV6" - This Peering will allow IPv4 traffic and routes to be
	// exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic
	// and routes will be exchanged as well.
	//   "IPV4_ONLY" - This Peering will only allow IPv4 traffic and routes to be
	// exchanged, even if the matching peering is IPV4_IPV6.
	StackType string `json:"stackType,omitempty"`
	// State: [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`.
	// The peering is `ACTIVE` when there's a matching configuration in the peer
	// network.
	//
	// Possible values:
	//   "ACTIVE" - Matching configuration exists on the peer.
	//   "INACTIVE" - There is no matching configuration on the peer, including the
	// case when peer does not exist.
	State string `json:"state,omitempty"`
	// StateDetails: [Output Only] Details about the current state of the peering.
	StateDetails string `json:"stateDetails,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AdvertisePeerSubnetsViaRouters") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisePeerSubnetsViaRouters")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkPeering) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPeering
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkPerformanceConfig struct {
	// Possible values:
	//   "DEFAULT"
	//   "TIER_1"
	ExternalIpEgressBandwidthTier string `json:"externalIpEgressBandwidthTier,omitempty"`
	// Possible values:
	//   "DEFAULT"
	//   "TIER_1"
	TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ExternalIpEgressBandwidthTier") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIpEgressBandwidthTier")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkPerformanceConfig) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPerformanceConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkPlacement: NetworkPlacement represents a Google managed network
// placement resource.
type NetworkPlacement struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: [Output Only] An optional description of this resource.
	Description string `json:"description,omitempty"`
	// Features: [Output Only] Features supported by the network.
	Features *NetworkPlacementNetworkFeatures `json:"features,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#networkPlacement
	// for network placements.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Zone: [Output Only] Zone to which the network is restricted.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkPlacement) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPlacement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkPlacementNetworkFeatures struct {
	// AllowAutoModeSubnet: Specifies whether auto mode subnet creation is allowed.
	//
	// Possible values:
	//   "AUTO_MODE_SUBNET_ALLOWED"
	//   "AUTO_MODE_SUBNET_BLOCKED"
	AllowAutoModeSubnet string `json:"allowAutoModeSubnet,omitempty"`
	// AllowCloudNat: Specifies whether cloud NAT creation is allowed.
	//
	// Possible values:
	//   "CLOUD_NAT_ALLOWED"
	//   "CLOUD_NAT_BLOCKED"
	AllowCloudNat string `json:"allowCloudNat,omitempty"`
	// AllowCloudRouter: Specifies whether cloud router creation is allowed.
	//
	// Possible values:
	//   "CLOUD_ROUTER_ALLOWED"
	//   "CLOUD_ROUTER_BLOCKED"
	AllowCloudRouter string `json:"allowCloudRouter,omitempty"`
	// AllowInterconnect: Specifies whether Cloud Interconnect creation is allowed.
	//
	// Possible values:
	//   "INTERCONNECT_ALLOWED"
	//   "INTERCONNECT_BLOCKED"
	AllowInterconnect string `json:"allowInterconnect,omitempty"`
	// AllowLoadBalancing: Specifies whether cloud load balancing is allowed.
	//
	// Possible values:
	//   "LOAD_BALANCING_ALLOWED"
	//   "LOAD_BALANCING_BLOCKED"
	AllowLoadBalancing string `json:"allowLoadBalancing,omitempty"`
	// AllowMultiNicInSameNetwork: Specifies whether multi-nic in the same network
	// is allowed.
	//
	// Possible values:
	//   "MULTI_NIC_IN_SAME_NETWORK_ALLOWED"
	//   "MULTI_NIC_IN_SAME_NETWORK_BLOCKED"
	AllowMultiNicInSameNetwork string `json:"allowMultiNicInSameNetwork,omitempty"`
	// AllowPacketMirroring: Specifies whether Packet Mirroring 1.0 is supported.
	//
	// Possible values:
	//   "PACKET_MIRRORING_ALLOWED"
	//   "PACKET_MIRRORING_BLOCKED"
	AllowPacketMirroring string `json:"allowPacketMirroring,omitempty"`
	// AllowPrivateGoogleAccess: Specifies whether private Google access is
	// allowed.
	//
	// Possible values:
	//   "PRIVATE_GOOGLE_ACCESS_ALLOWED"
	//   "PRIVATE_GOOGLE_ACCESS_BLOCKED"
	AllowPrivateGoogleAccess string `json:"allowPrivateGoogleAccess,omitempty"`
	// AllowPsc: Specifies whether PSC creation is allowed.
	//
	// Possible values:
	//   "PSC_ALLOWED"
	//   "PSC_BLOCKED"
	AllowPsc string `json:"allowPsc,omitempty"`
	// AllowSameNetworkUnicast: Specifies whether unicast within the same network
	// is allowed.
	//
	// Possible values:
	//   "SAME_NETWORK_UNICAST_ALLOWED"
	//   "SAME_NETWORK_UNICAST_BLOCKED"
	AllowSameNetworkUnicast string `json:"allowSameNetworkUnicast,omitempty"`
	// AllowStaticRoutes: Specifies whether static route creation is allowed.
	//
	// Possible values:
	//   "STATIC_ROUTES_ALLOWED"
	//   "STATIC_ROUTES_BLOCKED"
	AllowStaticRoutes string `json:"allowStaticRoutes,omitempty"`
	// AllowVpcPeering: Specifies whether VPC peering is allowed.
	//
	// Possible values:
	//   "VPC_PEERING_ALLOWED"
	//   "VPC_PEERING_BLOCKED"
	AllowVpcPeering string `json:"allowVpcPeering,omitempty"`
	// AllowVpn: Specifies whether VPN creation is allowed.
	//
	// Possible values:
	//   "VPN_ALLOWED"
	//   "VPN_BLOCKED"
	AllowVpn string `json:"allowVpn,omitempty"`
	// AllowedSubnetPurposes: Specifies which subnetwork purposes are supported.
	//
	// Possible values:
	//   "SUBNET_PURPOSE_CUSTOM_HARDWARE"
	//   "SUBNET_PURPOSE_PRIVATE"
	AllowedSubnetPurposes []string `json:"allowedSubnetPurposes,omitempty"`
	// AllowedSubnetStackTypes: Specifies which subnetwork stack types are
	// supported.
	//
	// Possible values:
	//   "SUBNET_STACK_TYPE_IPV4_IPV6"
	//   "SUBNET_STACK_TYPE_IPV4_ONLY"
	//   "SUBNET_STACK_TYPE_IPV6_ONLY"
	AllowedSubnetStackTypes []string `json:"allowedSubnetStackTypes,omitempty"`
	// InterfaceTypes: If set, limits the interface types that the network
	// supports. If empty, all interface types are supported.
	//
	// Possible values:
	//   "GVNIC" - GVNIC
	//   "IDPF" - IDPF
	//   "UNSPECIFIED_NIC_TYPE" - No type specified.
	//   "VIRTIO_NET" - VIRTIO
	InterfaceTypes []string `json:"interfaceTypes,omitempty"`
	// Multicast: Specifies which type of multicast is supported.
	//
	// Possible values:
	//   "MULTICAST_SDN"
	//   "MULTICAST_ULL"
	Multicast string `json:"multicast,omitempty"`
	// Unicast: Specifies which type of unicast is supported.
	//
	// Possible values:
	//   "UNICAST_SDN"
	//   "UNICAST_ULL"
	Unicast string `json:"unicast,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowAutoModeSubnet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowAutoModeSubnet") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkPlacementNetworkFeatures) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPlacementNetworkFeatures
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkPlacementsListResponse: Contains a list of network placements.
type NetworkPlacementsListResponse struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkPlacement resources.
	Items []*NetworkPlacement `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#networkPlacementList
	// for network placements.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources. end_interface:
	// MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkPlacementsListResponseWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkPlacementsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPlacementsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkPlacementsListResponseWarning: [Output Only] Informational warning
// message.
type NetworkPlacementsListResponseWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkPlacementsListResponseWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkPlacementsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPlacementsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkPlacementsListResponseWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkPlacementsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPlacementsListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkProfile: NetworkProfile represents a Google managed network profile
// resource.
type NetworkProfile struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: [Output Only] An optional description of this resource.
	Description string `json:"description,omitempty"`
	// Features: [Output Only] Features supported by the network.
	Features *NetworkProfileNetworkFeatures `json:"features,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#networkProfile for
	// network profiles.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Zone: [Output Only] Zone to which the network is restricted.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkProfile) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfile
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkProfileNetworkFeatures struct {
	// AddressPurposes: Specifies what address purposes are supported. If empty,
	// all address purposes are supported.
	//
	// Possible values:
	//   "DNS_RESOLVER" - DNS resolver address in the subnetwork.
	//   "GCE_ENDPOINT" - VM internal/alias IP, Internal LB service IP, etc.
	//   "IPSEC_INTERCONNECT" - A regional internal IP address range reserved for
	// the VLAN attachment that is used in HA VPN over Cloud Interconnect. This
	// regional internal IP address range must not overlap with any IP address
	// range of subnet/route in the VPC network and its peering networks. After the
	// VLAN attachment is created with the reserved IP address range, when creating
	// a new VPN gateway, its interface IP address is allocated from the associated
	// VLAN attachment’s IP address range.
	//   "NAT_AUTO" - External IP automatically reserved for Cloud NAT.
	//   "PRIVATE_SERVICE_CONNECT" - A private network IP address that can be used
	// to configure Private Service Connect. This purpose can be specified only for
	// GLOBAL addresses of Type INTERNAL
	//   "SERVERLESS" - A regional internal IP address range reserved for
	// Serverless.
	//   "SHARED_LOADBALANCER_VIP" - A private network IP address that can be
	// shared by multiple Internal Load Balancer forwarding rules.
	//   "VPC_PEERING" - IP range for peer networks.
	AddressPurposes []string `json:"addressPurposes,omitempty"`
	// AllowAliasIpRanges: Specifies whether alias IP ranges (and secondary address
	// ranges) are allowed.
	//
	// Possible values:
	//   "ALIAS_IP_RANGES_ALLOWED"
	//   "ALIAS_IP_RANGES_BLOCKED"
	AllowAliasIpRanges string `json:"allowAliasIpRanges,omitempty"`
	// AllowAutoModeSubnet: Specifies whether auto mode subnet creation is allowed.
	//
	// Possible values:
	//   "AUTO_MODE_SUBNET_ALLOWED"
	//   "AUTO_MODE_SUBNET_BLOCKED"
	AllowAutoModeSubnet string `json:"allowAutoModeSubnet,omitempty"`
	// AllowClassDFirewalls: Specifies whether firewalls for Class D address ranges
	// are supported.
	//
	// Possible values:
	//   "CLASS_D_FIREWALLS_ALLOWED"
	//   "CLASS_D_FIREWALLS_BLOCKED"
	AllowClassDFirewalls string `json:"allowClassDFirewalls,omitempty"`
	// AllowCloudNat: Specifies whether cloud NAT creation is allowed.
	//
	// Possible values:
	//   "CLOUD_NAT_ALLOWED"
	//   "CLOUD_NAT_BLOCKED"
	AllowCloudNat string `json:"allowCloudNat,omitempty"`
	// AllowCloudRouter: Specifies whether cloud router creation is allowed.
	//
	// Possible values:
	//   "CLOUD_ROUTER_ALLOWED"
	//   "CLOUD_ROUTER_BLOCKED"
	AllowCloudRouter string `json:"allowCloudRouter,omitempty"`
	// AllowExternalIpAccess: Specifies whether VMs are allowed to have external IP
	// access on network interfaces connected to this VPC.
	//
	// Possible values:
	//   "EXTERNAL_IP_ACCESS_ALLOWED"
	//   "EXTERNAL_IP_ACCESS_BLOCKED"
	AllowExternalIpAccess string `json:"allowExternalIpAccess,omitempty"`
	// AllowInterconnect: Specifies whether Cloud Interconnect creation is allowed.
	//
	// Possible values:
	//   "INTERCONNECT_ALLOWED"
	//   "INTERCONNECT_BLOCKED"
	AllowInterconnect string `json:"allowInterconnect,omitempty"`
	// AllowLoadBalancing: Specifies whether cloud load balancing is allowed.
	//
	// Possible values:
	//   "LOAD_BALANCING_ALLOWED"
	//   "LOAD_BALANCING_BLOCKED"
	AllowLoadBalancing string `json:"allowLoadBalancing,omitempty"`
	// AllowMultiNicInSameNetwork: Specifies whether multi-nic in the same network
	// is allowed.
	//
	// Possible values:
	//   "MULTI_NIC_IN_SAME_NETWORK_ALLOWED"
	//   "MULTI_NIC_IN_SAME_NETWORK_BLOCKED"
	AllowMultiNicInSameNetwork string `json:"allowMultiNicInSameNetwork,omitempty"`
	// AllowPacketMirroring: Specifies whether Packet Mirroring 1.0 is supported.
	//
	// Possible values:
	//   "PACKET_MIRRORING_ALLOWED"
	//   "PACKET_MIRRORING_BLOCKED"
	AllowPacketMirroring string `json:"allowPacketMirroring,omitempty"`
	// AllowPrivateGoogleAccess: Specifies whether private Google access is
	// allowed.
	//
	// Possible values:
	//   "PRIVATE_GOOGLE_ACCESS_ALLOWED"
	//   "PRIVATE_GOOGLE_ACCESS_BLOCKED"
	AllowPrivateGoogleAccess string `json:"allowPrivateGoogleAccess,omitempty"`
	// AllowPsc: Specifies whether PSC creation is allowed.
	//
	// Possible values:
	//   "PSC_ALLOWED"
	//   "PSC_BLOCKED"
	AllowPsc string `json:"allowPsc,omitempty"`
	// AllowSameNetworkUnicast: Specifies whether unicast within the same network
	// is allowed.
	//
	// Possible values:
	//   "SAME_NETWORK_UNICAST_ALLOWED"
	//   "SAME_NETWORK_UNICAST_BLOCKED"
	AllowSameNetworkUnicast string `json:"allowSameNetworkUnicast,omitempty"`
	// AllowStaticRoutes: Specifies whether static route creation is allowed.
	//
	// Possible values:
	//   "STATIC_ROUTES_ALLOWED"
	//   "STATIC_ROUTES_BLOCKED"
	AllowStaticRoutes string `json:"allowStaticRoutes,omitempty"`
	// AllowSubInterfaces: Specifies whether sub interfaces are allowed.
	//
	// Possible values:
	//   "SUBINTERFACES_ALLOWED"
	//   "SUBINTERFACES_BLOCKED"
	AllowSubInterfaces string `json:"allowSubInterfaces,omitempty"`
	// AllowVpcPeering: Specifies whether VPC peering is allowed.
	//
	// Possible values:
	//   "VPC_PEERING_ALLOWED"
	//   "VPC_PEERING_BLOCKED"
	AllowVpcPeering string `json:"allowVpcPeering,omitempty"`
	// AllowVpn: Specifies whether VPN creation is allowed.
	//
	// Possible values:
	//   "VPN_ALLOWED"
	//   "VPN_BLOCKED"
	AllowVpn string `json:"allowVpn,omitempty"`
	// AllowedSubnetPurposes: Specifies which subnetwork purposes are supported.
	//
	// Possible values:
	//   "SUBNET_PURPOSE_CUSTOM_HARDWARE"
	//   "SUBNET_PURPOSE_PRIVATE"
	AllowedSubnetPurposes []string `json:"allowedSubnetPurposes,omitempty"`
	// AllowedSubnetStackTypes: Specifies which subnetwork stack types are
	// supported.
	//
	// Possible values:
	//   "SUBNET_STACK_TYPE_IPV4_IPV6"
	//   "SUBNET_STACK_TYPE_IPV4_ONLY"
	//   "SUBNET_STACK_TYPE_IPV6_ONLY"
	AllowedSubnetStackTypes []string `json:"allowedSubnetStackTypes,omitempty"`
	// InterfaceTypes: If set, limits the interface types that the network
	// supports. If empty, all interface types are supported.
	//
	// Possible values:
	//   "GVNIC" - GVNIC
	//   "IDPF" - IDPF
	//   "UNSPECIFIED_NIC_TYPE" - No type specified.
	//   "VIRTIO_NET" - VIRTIO
	InterfaceTypes []string `json:"interfaceTypes,omitempty"`
	// Multicast: Specifies which type of multicast is supported.
	//
	// Possible values:
	//   "MULTICAST_SDN"
	//   "MULTICAST_ULL"
	Multicast string `json:"multicast,omitempty"`
	// Unicast: Specifies which type of unicast is supported.
	//
	// Possible values:
	//   "UNICAST_SDN"
	//   "UNICAST_ULL"
	Unicast string `json:"unicast,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AddressPurposes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AddressPurposes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkProfileNetworkFeatures) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfileNetworkFeatures
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkProfilesListResponse: Contains a list of network profiles.
type NetworkProfilesListResponse struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NetworkProfile resources.
	Items []*NetworkProfile `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#networkProfileList for
	// network profiles.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources. end_interface:
	// MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkProfilesListResponseWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkProfilesListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfilesListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkProfilesListResponseWarning: [Output Only] Informational warning
// message.
type NetworkProfilesListResponseWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NetworkProfilesListResponseWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkProfilesListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfilesListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkProfilesListResponseWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkProfilesListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfilesListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkRoutingConfig: A routing configuration attached to a network
// resource. The message includes the list of routers associated with the
// network, and a flag indicating the type of routing behavior to enforce
// network-wide.
type NetworkRoutingConfig struct {
	// BgpAlwaysCompareMed: Enable comparison of Multi-Exit Discriminators (MED)
	// across routes with different neighbor ASNs when using the STANDARD BGP best
	// path selection algorithm.
	BgpAlwaysCompareMed bool `json:"bgpAlwaysCompareMed,omitempty"`
	// BgpBestPathSelectionMode: The BGP best path selection algorithm to be
	// employed within this network for dynamic routes learned by Cloud Routers.
	// Can be LEGACY (default) or STANDARD.
	//
	// Possible values:
	//   "LEGACY"
	//   "STANDARD"
	BgpBestPathSelectionMode string `json:"bgpBestPathSelectionMode,omitempty"`
	// BgpInterRegionCost: Allows to define a preferred approach for handling
	// inter-region cost in the selection process when using the STANDARD BGP best
	// path selection algorithm. Can be DEFAULT or ADD_COST_TO_MED.
	//
	// Possible values:
	//   "ADD_COST_TO_MED"
	//   "DEFAULT"
	BgpInterRegionCost string `json:"bgpInterRegionCost,omitempty"`
	// RoutingMode: The network-wide routing mode to use. If set to REGIONAL, this
	// network's Cloud Routers will only advertise routes with subnets of this
	// network in the same region as the router. If set to GLOBAL, this network's
	// Cloud Routers will advertise routes with all subnets of this network, across
	// regions.
	//
	// Possible values:
	//   "GLOBAL"
	//   "REGIONAL"
	RoutingMode string `json:"routingMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BgpAlwaysCompareMed") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BgpAlwaysCompareMed") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkRoutingConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworksAddPeeringRequest struct {
	// AutoCreateRoutes: This field will be deprecated soon. Use
	// exchange_subnet_routes in network_peering instead. Indicates whether full
	// mesh connectivity is created and managed automatically between peered
	// networks. Currently this field should always be true since Google Compute
	// Engine will automatically create and manage subnetwork routes between two
	// networks when peering state is ACTIVE.
	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
	// ExportCustomRoutes: This field will be deprecated soon. Use
	// export_custom_routes in network_peering instead. Whether to export the
	// custom routes to peer network.
	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
	// ImportCustomRoutes: This field will be deprecated soon. Use
	// import_custom_routes in network_peering instead. Whether to import the
	// custom routes from peer network.
	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
	// Name: Name of the peering, which should conform to RFC1035.
	Name string `json:"name,omitempty"`
	// NetworkPeering: Network peering parameters. In order to specify route
	// policies for peering using import and export custom routes, you must specify
	// all peering related parameters (name, peer network, exchange_subnet_routes)
	// in the network_peering field. The corresponding fields in
	// NetworksAddPeeringRequest will be deprecated soon.
	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
	// PeerNetwork: URL of the peer network. It can be either full URL or partial
	// URL. The peer network may belong to a different project. If the partial URL
	// does not contain project, it is assumed that the peer network is in the same
	// project as the current network.
	PeerNetwork string `json:"peerNetwork,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksAddPeeringRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworksGetEffectiveFirewallsResponse struct {
	// FirewallPolicys: Effective firewalls from firewall policy.
	FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
	// Firewalls: Effective firewalls on the network.
	Firewalls []*Firewall `json:"firewalls,omitempty"`
	// OrganizationFirewalls: Effective firewalls from organization policies.
	OrganizationFirewalls []*NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FirewallPolicys") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksGetEffectiveFirewallsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
	// DisplayName: [Output Only] Deprecated, please use short name instead. The
	// display name of the firewall policy.
	DisplayName string `json:"displayName,omitempty"`
	// Name: [Output Only] The name of the firewall policy.
	Name string `json:"name,omitempty"`
	// Priority: [Output only] Priority of firewall policy association. Not
	// applicable for type=HIERARCHY.
	Priority int64 `json:"priority,omitempty"`
	// Rules: The rules that apply to the network.
	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
	// ShortName: [Output Only] The short name of the firewall policy.
	ShortName string `json:"shortName,omitempty"`
	// Type: [Output Only] The type of the firewall policy.
	//
	// Possible values:
	//   "HIERARCHY"
	//   "NETWORK"
	//   "SYSTEM"
	//   "UNSPECIFIED"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A pruned
// SecurityPolicy containing ID and any applicable firewall rules.
type NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
	// Id: [Output Only] The unique identifier for the security policy. This
	// identifier is defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Rules: The rules that apply to the network.
	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworksRemovePeeringRequest struct {
	// Name: Name of the peering, which should conform to RFC1035.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksRemovePeeringRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworksUpdatePeeringRequest struct {
	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkPeering") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksUpdatePeeringRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeGroup: Represents a sole-tenant Node Group resource. A sole-tenant node
// is a physical server that is dedicated to hosting VM instances only for your
// specific project. Use sole-tenant nodes to keep your instances physically
// separated from instances in other projects, or to group your instances
// together on the same host hardware. For more information, read Sole-tenant
// nodes.
type NodeGroup struct {
	// AutoscalingPolicy: Specifies how autoscaling should behave.
	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] The type of the resource. Always compute#nodeGroup for
	// node group.
	Kind string `json:"kind,omitempty"`
	// LocationHint: An opaque location hint used to place the Node close to other
	// resources. This field is for use by internal tools that use the public API.
	// The location hint here on the NodeGroup overrides any location_hint present
	// in the NodeTemplate.
	LocationHint string `json:"locationHint,omitempty"`
	// MaintenanceInterval: Specifies the frequency of planned maintenance events.
	// The accepted values are: `AS_NEEDED` and `RECURRENT`.
	//
	// Possible values:
	//   "AS_NEEDED" - VMs are eligible to receive infrastructure and hypervisor
	// updates as they become available. This may result in more maintenance
	// operations (live migrations or terminations) for the VM than the PERIODIC
	// and RECURRENT options.
	//   "PERIODIC" - VMs receive infrastructure and hypervisor updates on a
	// periodic basis, minimizing the number of maintenance operations (live
	// migrations or terminations) on an individual VM. This may mean a VM will
	// take longer to receive an update than if it was configured for AS_NEEDED.
	// Security updates will still be applied as soon as they are available.
	//   "RECURRENT" - VMs receive infrastructure and hypervisor updates on a
	// periodic basis, minimizing the number of maintenance operations (live
	// migrations or terminations) on an individual VM. This may mean a VM will
	// take longer to receive an update than if it was configured for AS_NEEDED.
	// Security updates will still be applied as soon as they are available.
	// RECURRENT is used for GEN3 and Slice of Hardware VMs.
	MaintenanceInterval string `json:"maintenanceInterval,omitempty"`
	// MaintenancePolicy: Specifies how to handle instances when a node in the
	// group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or
	// MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more
	// information, see Maintenance policies.
	//
	// Possible values:
	//   "DEFAULT" - Allow the node and corresponding instances to retain default
	// maintenance behavior.
	//   "MAINTENANCE_POLICY_UNSPECIFIED"
	//   "MIGRATE_WITHIN_NODE_GROUP" - When maintenance must be done on a node, the
	// instances on that node will be moved to other nodes in the group. Instances
	// with onHostMaintenance = MIGRATE will live migrate to their destinations
	// while instances with onHostMaintenance = TERMINATE will terminate and then
	// restart on their destination nodes if automaticRestart = true.
	//   "RESTART_IN_PLACE" - Instances in this group will restart on the same node
	// when maintenance has completed. Instances must have onHostMaintenance =
	// TERMINATE, and they will only restart if automaticRestart = true.
	MaintenancePolicy string                      `json:"maintenancePolicy,omitempty"`
	MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"`
	// Name: The name of the resource, provided by the client when initially
	// creating the resource. The resource name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// NodeTemplate: URL of the node template to create the node group from.
	NodeTemplate string `json:"nodeTemplate,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ShareSettings: Share-settings for the node group
	ShareSettings *ShareSettings `json:"shareSettings,omitempty"`
	// Size: [Output Only] The total number of nodes in the node group.
	Size int64 `json:"size,omitempty"`
	// Possible values:
	//   "CREATING"
	//   "DELETING"
	//   "INVALID"
	//   "READY"
	Status string `json:"status,omitempty"`
	// Zone: [Output Only] The name of the zone where the node group resides, such
	// as us-central1-a.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroup) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NodeGroupsScopedList resources.
	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always compute#nodeGroupAggregatedList
	// for aggregated lists of node groups.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeGroupAggregatedListWarning: [Output Only] Informational warning message.
type NodeGroupAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupAutoscalingPolicy struct {
	// MaxNodes: The maximum number of nodes that the group should have. Must be
	// set if autoscaling is enabled. Maximum value allowed is 100.
	MaxNodes int64 `json:"maxNodes,omitempty"`
	// MinNodes: The minimum number of nodes that the group should have.
	MinNodes int64 `json:"minNodes,omitempty"`
	// Mode: The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For
	// more information, see Autoscaler modes.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED"
	//   "OFF" - Autoscaling is disabled.
	//   "ON" - Autocaling is fully enabled.
	//   "ONLY_SCALE_OUT" - Autoscaling will only scale out and will not remove
	// nodes.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxNodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupAutoscalingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeGroupList: Contains a list of nodeGroups.
type NodeGroupList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NodeGroup resources.
	Items []*NodeGroup `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for lists
	// of node groups.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NodeGroupListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeGroupListWarning: [Output Only] Informational warning message.
type NodeGroupListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeGroupListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeGroupMaintenanceWindow: Time window specified for daily maintenance
// operations. GCE's internal maintenance will be performed within this window.
type NodeGroupMaintenanceWindow struct {
	// Duration: [Output only] A predetermined duration for the window,
	// automatically chosen to be the smallest possible in the given scenario.
	Duration string `json:"duration,omitempty"`
	// MaintenanceDuration: [Output only] A predetermined duration for the window,
	// automatically chosen to be the smallest possible in the given scenario.
	MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"`
	// StartTime: Start time of the window. This must be in UTC format that
	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example,
	// both 13:00-5 and 08:00 are valid.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Duration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Duration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupMaintenanceWindow
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupNode struct {
	// Accelerators: Accelerators for this node.
	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
	// ConsumedResources: Node resources that are reserved by all instances.
	ConsumedResources *InstanceConsumptionInfo `json:"consumedResources,omitempty"`
	// CpuOvercommitType: CPU overcommit.
	//
	// Possible values:
	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
	//   "ENABLED"
	//   "NONE"
	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
	// Disks: Local disk configurations.
	Disks []*LocalDisk `json:"disks,omitempty"`
	// InstanceConsumptionData: Instance data that shows consumed resources on the
	// node.
	InstanceConsumptionData []*InstanceConsumptionData `json:"instanceConsumptionData,omitempty"`
	// Instances: Instances scheduled on this node.
	Instances []string `json:"instances,omitempty"`
	// Name: The name of the node.
	Name string `json:"name,omitempty"`
	// NodeType: The type of this node.
	NodeType string `json:"nodeType,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// ServerBinding: Binding properties for the physical server.
	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
	// ServerId: Server ID associated with this node.
	ServerId string `json:"serverId,omitempty"`
	// Possible values:
	//   "CREATING"
	//   "DELETING"
	//   "INVALID"
	//   "READY"
	//   "REPAIRING"
	Status string `json:"status,omitempty"`
	// TotalResources: Total amount of available resources on the node.
	TotalResources *InstanceConsumptionInfo `json:"totalResources,omitempty"`
	// UpcomingMaintenance: [Output Only] The information about an upcoming
	// maintenance event.
	UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Accelerators") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Accelerators") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupNode) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupNode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsAddNodesRequest struct {
	// AdditionalNodeCount: Count of additional nodes to be added to the node
	// group.
	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsAddNodesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsDeleteNodesRequest struct {
	// Nodes: Names of the nodes to delete.
	Nodes []string `json:"nodes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Nodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsDeleteNodesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsListNodes struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Node resources.
	Items []*NodeGroupNode `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute.nodeGroupsListNodes for the list of nodes in the specified node
	// group.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsListNodes
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeGroupsListNodesWarning: [Output Only] Informational warning message.
type NodeGroupsListNodesWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsListNodesWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsListNodesWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsListNodesWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsPerformMaintenanceRequest struct {
	// Nodes: [Required] List of nodes affected by the call.
	Nodes []string `json:"nodes,omitempty"`
	// StartTime: The start time of the schedule. The timestamp is an RFC3339
	// string.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Nodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsPerformMaintenanceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsPerformMaintenanceRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsScopedList struct {
	// NodeGroups: [Output Only] A list of node groups contained in this scope.
	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
	// Warning: [Output Only] An informational warning that appears when the
	// nodeGroup list is empty.
	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NodeGroups") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeGroupsScopedListWarning: [Output Only] An informational warning that
// appears when the nodeGroup list is empty.
type NodeGroupsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsSetNodeTemplateRequest struct {
	// NodeTemplate: Full or partial URL of the node template resource to be
	// updated for this node group.
	NodeTemplate string `json:"nodeTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NodeTemplate") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsSetNodeTemplateRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeGroupsSimulateMaintenanceEventRequest struct {
	// Nodes: Names of the nodes to go under maintenance simulation.
	Nodes []string `json:"nodes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Nodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeGroupsSimulateMaintenanceEventRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NodeGroupsSimulateMaintenanceEventRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTemplate: Represent a sole-tenant Node Template resource. You can use a
// template to define properties for nodes in a node group. For more
// information, read Creating node groups and instances.
type NodeTemplate struct {
	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
	// CpuOvercommitType: CPU overcommit.
	//
	// Possible values:
	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
	//   "ENABLED"
	//   "NONE"
	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string       `json:"description,omitempty"`
	Disks       []*LocalDisk `json:"disks,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] The type of the resource. Always compute#nodeTemplate
	// for node templates.
	Kind string `json:"kind,omitempty"`
	// Name: The name of the resource, provided by the client when initially
	// creating the resource. The resource name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// NodeAffinityLabels: Labels to use for node affinity, which will be used in
	// instance scheduling.
	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
	// NodeType: The node type to use for nodes group that are created from this
	// template.
	NodeType string `json:"nodeType,omitempty"`
	// NodeTypeFlexibility: Do not use. Instead, use the node_type property.
	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
	// Region: [Output Only] The name of the region where the node template
	// resides, such as us-central1.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ServerBinding: Sets the binding properties for the physical server. Valid
	// values include: - *[Default]* RESTART_NODE_ON_ANY_SERVER: Restarts VMs on
	// any available physical server - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs
	// on the same physical server whenever possible See Sole-tenant node options
	// for more information.
	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
	// Status: [Output Only] The status of the node template. One of the following
	// values: CREATING, READY, and DELETING.
	//
	// Possible values:
	//   "CREATING" - Resources are being allocated.
	//   "DELETING" - The node template is currently being deleted.
	//   "INVALID" - Invalid status.
	//   "READY" - The node template is ready.
	Status string `json:"status,omitempty"`
	// StatusMessage: [Output Only] An optional, human-readable explanation of the
	// status.
	StatusMessage string `json:"statusMessage,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Accelerators") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Accelerators") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplate) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplate
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTemplateAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NodeTemplatesScopedList resources.
	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always
	// compute#nodeTemplateAggregatedList for aggregated lists of node templates.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplateAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTemplateAggregatedListWarning: [Output Only] Informational warning
// message.
type NodeTemplateAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplateAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTemplateAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplateAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTemplateList: Contains a list of node templates.
type NodeTemplateList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NodeTemplate resources.
	Items []*NodeTemplate `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList for
	// lists of node templates.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NodeTemplateListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplateList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplateList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTemplateListWarning: [Output Only] Informational warning message.
type NodeTemplateListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplateListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTemplateListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplateListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTemplateNodeTypeFlexibility struct {
	Cpus     string `json:"cpus,omitempty"`
	LocalSsd string `json:"localSsd,omitempty"`
	Memory   string `json:"memory,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cpus") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cpus") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplateNodeTypeFlexibility
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTemplatesScopedList struct {
	// NodeTemplates: [Output Only] A list of node templates contained in this
	// scope.
	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
	// Warning: [Output Only] An informational warning that appears when the node
	// templates list is empty.
	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NodeTemplates") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplatesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTemplatesScopedListWarning: [Output Only] An informational warning that
// appears when the node templates list is empty.
type NodeTemplatesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplatesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTemplatesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTemplatesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeType: Represent a sole-tenant Node Type resource. Each node within a
// node group must have a node type. A node type specifies the total amount of
// cores and memory for that node. Currently, the only available node type is
// n1-node-96-624 node type that has 96 vCPUs and 624 GB of memory, available
// in multiple zones. For more information read Node types.
type NodeType struct {
	// CpuPlatform: [Output Only] The CPU platform used by this node type.
	CpuPlatform string `json:"cpuPlatform,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- [Output Only] The deprecation status associated with this node
	// type.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: [Output Only] An optional textual description of the resource.
	Description string `json:"description,omitempty"`
	// GuestCpus: [Output Only] The number of virtual CPUs that are available to
	// the node type.
	GuestCpus int64 `json:"guestCpus,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] The type of the resource. Always compute#nodeType for
	// node types.
	Kind string `json:"kind,omitempty"`
	// LocalSsdGb: [Output Only] Local SSD available to the node type, defined in
	// GB.
	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
	// MemoryMb: [Output Only] The amount of physical memory available to the node
	// type, defined in MB.
	MemoryMb int64 `json:"memoryMb,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Zone: [Output Only] The name of the zone where the node type resides, such
	// as us-central1-a.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpuPlatform") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeType) MarshalJSON() ([]byte, error) {
	type NoMethod NodeType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTypeAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NodeTypesScopedList resources.
	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always compute#nodeTypeAggregatedList
	// for aggregated lists of node types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypeAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTypeAggregatedListWarning: [Output Only] Informational warning message.
type NodeTypeAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypeAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTypeAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypeAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTypeList: Contains a list of node types.
type NodeTypeList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NodeType resources.
	Items []*NodeType `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for lists
	// of node types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NodeTypeListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypeList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypeList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTypeListWarning: [Output Only] Informational warning message.
type NodeTypeListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeTypeListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypeListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypeListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTypeListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypeListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTypesScopedList struct {
	// NodeTypes: [Output Only] A list of node types contained in this scope.
	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
	// Warning: [Output Only] An informational warning that appears when the node
	// types list is empty.
	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NodeTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NodeTypesScopedListWarning: [Output Only] An informational warning that
// appears when the node types list is empty.
type NodeTypesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NodeTypesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NodeTypesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NotificationEndpoint: Represents a notification endpoint. A notification
// endpoint resource defines an endpoint to receive notifications when there
// are status changes detected by the associated health check service. For more
// information, see Health checks overview.
type NotificationEndpoint struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// GrpcSettings: Settings of the gRPC notification endpoint including the
	// endpoint URL and the retry duration.
	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
	// Id: [Output Only] A unique identifier for this resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#notificationEndpoint for notification endpoints.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] URL of the region where the notification endpoint
	// resides. This field applies only to the regional resource. You must specify
	// this field as part of the HTTP request URL. It is not settable as a field in
	// the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpoint) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NotificationEndpointAggregatedList: Contains a list of
// NotificationEndpointsScopedList.
type NotificationEndpointAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NotificationEndpointsScopedList resources.
	Items map[string]NotificationEndpointsScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NotificationEndpointAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NotificationEndpointAggregatedListWarning: [Output Only] Informational
// warning message.
type NotificationEndpointAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NotificationEndpointAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NotificationEndpointAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NotificationEndpointGrpcSettings: Represents a gRPC setting that describes
// one gRPC notification endpoint and the retry duration attempting to send
// notification to this endpoint.
type NotificationEndpointGrpcSettings struct {
	// Authority: Optional. If specified, this field is used to set the authority
	// header by the sender of notifications. See
	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
	Authority string `json:"authority,omitempty"`
	// Endpoint: Endpoint to which gRPC notifications are sent. This must be a
	// valid gRPCLB DNS name.
	Endpoint string `json:"endpoint,omitempty"`
	// PayloadName: Optional. If specified, this field is used to populate the
	// "name" field in gRPC requests.
	PayloadName string `json:"payloadName,omitempty"`
	// ResendInterval: Optional. This field is used to configure how often to send
	// a full update of all non-healthy backends. If unspecified, full updates are
	// not sent. If specified, must be in the range between 600 seconds to 3600
	// seconds. Nanos are disallowed. Can only be set for regional notification
	// endpoints.
	ResendInterval *Duration `json:"resendInterval,omitempty"`
	// RetryDurationSec: How much time (in seconds) is spent attempting
	// notification retries until a successful response is received. Default is
	// 30s. Limit is 20m (1200s). Must be a positive number.
	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Authority") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Authority") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointGrpcSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NotificationEndpointList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of NotificationEndpoint resources.
	Items []*NotificationEndpoint `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#notificationEndpoint for notification endpoints.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointList) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NotificationEndpointListWarning: [Output Only] Informational warning
// message.
type NotificationEndpointListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NotificationEndpointListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NotificationEndpointsScopedList struct {
	// Resources: A list of NotificationEndpoints contained in this scope.
	Resources []*NotificationEndpoint `json:"resources,omitempty"`
	// Warning: Informational warning which replaces the list of notification
	// endpoints when the list is empty.
	Warning *NotificationEndpointsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Resources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Resources") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NotificationEndpointsScopedListWarning: Informational warning which replaces
// the list of notification endpoints when the list is empty.
type NotificationEndpointsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*NotificationEndpointsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NotificationEndpointsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NotificationEndpointsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NotificationEndpointsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Operation: Represents an Operation resource. Google Compute Engine has three
// Operation resources: * Global
// (/compute/docs/reference/rest/alpha/globalOperations) * Regional
// (/compute/docs/reference/rest/alpha/regionOperations) * Zonal
// (/compute/docs/reference/rest/alpha/zoneOperations) You can use an operation
// resource to manage asynchronous API requests. For more information, read
// Handling API responses. Operations can be global, regional or zonal. - For
// global operations, use the `globalOperations` resource. - For regional
// operations, use the `regionOperations` resource. - For zonal operations, use
// the `zoneOperations` resource. For more information, read Global, Regional,
// and Zonal Resources. Note that completed Operation resources have a limited
// retention period.
type Operation struct {
	// ClientOperationId: [Output Only] The value of `requestId` if you provided it
	// in the request. Not present otherwise.
	ClientOperationId string `json:"clientOperationId,omitempty"`
	// CreationTimestamp: [Deprecated] This field is deprecated.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: [Output Only] A textual description of the operation, which is
	// set when the operation is created.
	Description string `json:"description,omitempty"`
	// EndTime: [Output Only] The time that this operation was completed. This
	// value is in RFC3339 text format.
	EndTime string `json:"endTime,omitempty"`
	// Error: [Output Only] If errors are generated during processing of the
	// operation, this field will be populated.
	Error *OperationError `json:"error,omitempty"`
	// HttpErrorMessage: [Output Only] If the operation fails, this field contains
	// the HTTP error message that was returned, such as `NOT FOUND`.
	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
	// contains the HTTP error status code that was returned. For example, a `404`
	// means the resource was not found.
	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
	// Id: [Output Only] The unique identifier for the operation. This identifier
	// is defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InsertTime: [Output Only] The time that this operation was requested. This
	// value is in RFC3339 text format.
	InsertTime                           string                                `json:"insertTime,omitempty"`
	InstancesBulkInsertOperationMetadata *InstancesBulkInsertOperationMetadata `json:"instancesBulkInsertOperationMetadata,omitempty"`
	// Kind: [Output Only] Type of the resource. Always `compute#operation` for
	// Operation resources.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] Name of the operation.
	Name string `json:"name,omitempty"`
	// OperationGroupId: [Output Only] An ID that represents a group of operations,
	// such as when a group of operations results from a `bulkInsert` API request.
	OperationGroupId string `json:"operationGroupId,omitempty"`
	// OperationType: [Output Only] The type of operation, such as `insert`,
	// `update`, or `delete`, and so on.
	OperationType string `json:"operationType,omitempty"`
	// Progress: [Output Only] An optional progress indicator that ranges from 0 to
	// 100. There is no requirement that this be linear or support any granularity
	// of operations. This should not be used to guess when the operation will be
	// complete. This number should monotonically increase as the operation
	// progresses.
	Progress int64 `json:"progress,omitempty"`
	// Region: [Output Only] The URL of the region where the operation resides.
	// Only applicable when performing regional operations.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SetCommonInstanceMetadataOperationMetadata: [Output Only] If the operation
	// is for projects.setCommonInstanceMetadata, this field will contain
	// information on all underlying zonal actions and their state.
	SetCommonInstanceMetadataOperationMetadata *SetCommonInstanceMetadataOperationMetadata `json:"setCommonInstanceMetadataOperationMetadata,omitempty"`
	// StartTime: [Output Only] The time that this operation was started by the
	// server. This value is in RFC3339 text format.
	StartTime string `json:"startTime,omitempty"`
	// Status: [Output Only] The status of the operation, which can be one of the
	// following: `PENDING`, `RUNNING`, or `DONE`.
	//
	// Possible values:
	//   "DONE"
	//   "PENDING"
	//   "RUNNING"
	Status string `json:"status,omitempty"`
	// StatusMessage: [Output Only] An optional textual description of the current
	// status of the operation.
	StatusMessage string `json:"statusMessage,omitempty"`
	// TargetId: [Output Only] The unique target ID, which identifies a specific
	// incarnation of the target resource.
	TargetId uint64 `json:"targetId,omitempty,string"`
	// TargetLink: [Output Only] The URL of the resource that the operation
	// modifies. For operations related to creating a snapshot, this points to the
	// persistent disk that the snapshot was created from.
	TargetLink string `json:"targetLink,omitempty"`
	// User: [Output Only] User who requested the operation, for example:
	// `user@example.com` or `alice_smith_identifier
	// (global/workforcePools/example-com-us-employees)`.
	User string `json:"user,omitempty"`
	// Warnings: [Output Only] If warning messages are generated during processing
	// of the operation, this field will be populated.
	Warnings []*OperationWarnings `json:"warnings,omitempty"`
	// Zone: [Output Only] The URL of the zone where the operation resides. Only
	// applicable when performing per-zone operations.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ClientOperationId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClientOperationId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Operation) MarshalJSON() ([]byte, error) {
	type NoMethod Operation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OperationError: [Output Only] If errors are generated during processing of
// the operation, this field will be populated.
type OperationError struct {
	// Errors: [Output Only] The array of errors encountered while processing this
	// operation.
	Errors []*OperationErrorErrors `json:"errors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationError) MarshalJSON() ([]byte, error) {
	type NoMethod OperationError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationErrorErrors struct {
	// Code: [Output Only] The error type identifier for this error.
	Code string `json:"code,omitempty"`
	// ErrorDetails: [Output Only] An optional list of messages that contain the
	// error details. There is a set of defined message types to use for providing
	// details.The syntax depends on the error code. For example, QuotaExceededInfo
	// will have details when the error code is QUOTA_EXCEEDED.
	ErrorDetails []*OperationErrorErrorsErrorDetails `json:"errorDetails,omitempty"`
	// Location: [Output Only] Indicates the field in the request that caused the
	// error. This property is optional.
	Location string `json:"location,omitempty"`
	// Message: [Output Only] An optional, human-readable error message.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationErrorErrors) MarshalJSON() ([]byte, error) {
	type NoMethod OperationErrorErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationErrorErrorsErrorDetails struct {
	ErrorInfo        *ErrorInfo         `json:"errorInfo,omitempty"`
	Help             *Help              `json:"help,omitempty"`
	LocalizedMessage *LocalizedMessage  `json:"localizedMessage,omitempty"`
	QuotaInfo        *QuotaExceededInfo `json:"quotaInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod OperationErrorErrorsErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationWarnings struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*OperationWarningsData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationWarnings) MarshalJSON() ([]byte, error) {
	type NoMethod OperationWarnings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationWarningsData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationWarningsData) MarshalJSON() ([]byte, error) {
	type NoMethod OperationWarningsData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationAggregatedList struct {
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Items: [Output Only] A map of scoped operation lists.
	Items map[string]OperationsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// `compute#operationAggregatedList` for aggregated lists of operations.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// `maxResults`, use the `nextPageToken` as a value for the query parameter
	// `pageToken` in the next list request. Subsequent list requests will have
	// their own `nextPageToken` to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod OperationAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OperationAggregatedListWarning: [Output Only] Informational warning message.
type OperationAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod OperationAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod OperationAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OperationList: Contains a list of Operation resources.
type OperationList struct {
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Items: [Output Only] A list of Operation resources.
	Items []*Operation `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always `compute#operations` for
	// Operations resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// `maxResults`, use the `nextPageToken` as a value for the query parameter
	// `pageToken` in the next list request. Subsequent list requests will have
	// their own `nextPageToken` to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *OperationListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationList) MarshalJSON() ([]byte, error) {
	type NoMethod OperationList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OperationListWarning: [Output Only] Informational warning message.
type OperationListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*OperationListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod OperationListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod OperationListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationsScopedList struct {
	// Operations: [Output Only] A list of operations contained in this scope.
	Operations []*Operation `json:"operations,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// operations when the list is empty.
	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod OperationsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OperationsScopedListWarning: [Output Only] Informational warning which
// replaces the list of operations when the list is empty.
type OperationsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod OperationsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OperationsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod OperationsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type OrganizationSecurityPoliciesListAssociationsResponse struct {
	// Associations: A list of associations.
	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
	// Kind: [Output Only] Type of securityPolicy associations. Always
	// compute#organizationSecurityPoliciesListAssociations for lists of
	// securityPolicy associations.
	Kind string `json:"kind,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Associations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Associations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod OrganizationSecurityPoliciesListAssociationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OriginAuthenticationMethod: [Deprecated] Configuration for the origin
// authentication method. Configuration for the origin authentication method.
type OriginAuthenticationMethod struct {
	Jwt *Jwt `json:"jwt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Jwt") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Jwt") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OriginAuthenticationMethod) MarshalJSON() ([]byte, error) {
	type NoMethod OriginAuthenticationMethod
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OutlierDetection: Settings controlling the eviction of unhealthy hosts from
// the load balancing pool for the backend service.
type OutlierDetection struct {
	// BaseEjectionTime: The base time that a backend endpoint is ejected for.
	// Defaults to 30000ms or 30s. After a backend endpoint is returned back to the
	// load balancing pool, it can be ejected again in another ejection analysis.
	// Thus, the total ejection time is equal to the base ejection time multiplied
	// by the number of times the backend endpoint has been ejected. Defaults to
	// 30000ms or 30s.
	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
	// ConsecutiveErrors: Number of consecutive errors before a backend endpoint is
	// ejected from the load balancing pool. When the backend endpoint is accessed
	// over HTTP, a 5xx return code qualifies as an error. Defaults to 5.
	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
	// ConsecutiveGatewayFailure: The number of consecutive gateway failures (502,
	// 503, 504 status or connection errors that are mapped to one of those status
	// codes) before a consecutive gateway failure ejection occurs. Defaults to 3.
	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
	// EnforcingConsecutiveErrors: The percentage chance that a backend endpoint
	// will be ejected when an outlier status is detected through consecutive 5xx.
	// This setting can be used to disable ejection or to ramp it up slowly.
	// Defaults to 0.
	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
	// EnforcingConsecutiveGatewayFailure: The percentage chance that a backend
	// endpoint will be ejected when an outlier status is detected through
	// consecutive gateway failures. This setting can be used to disable ejection
	// or to ramp it up slowly. Defaults to 100.
	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
	// EnforcingSuccessRate: The percentage chance that a backend endpoint will be
	// ejected when an outlier status is detected through success rate statistics.
	// This setting can be used to disable ejection or to ramp it up slowly.
	// Defaults to 100. Not supported when the backend service uses Serverless NEG.
	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
	// Interval: Time interval between ejection analysis sweeps. This can result in
	// both new ejections and backend endpoints being returned to service. The
	// interval is equal to the number of seconds as defined in
	// outlierDetection.interval.seconds plus the number of nanoseconds as defined
	// in outlierDetection.interval.nanos. Defaults to 1 second.
	Interval *Duration `json:"interval,omitempty"`
	// MaxEjectionPercent: Maximum percentage of backend endpoints in the load
	// balancing pool for the backend service that can be ejected if the ejection
	// conditions are met. Defaults to 50%.
	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
	// SuccessRateMinimumHosts: The number of backend endpoints in the load
	// balancing pool that must have enough request volume to detect success rate
	// outliers. If the number of backend endpoints is fewer than this setting,
	// outlier detection via success rate statistics is not performed for any
	// backend endpoint in the load balancing pool. Defaults to 5. Not supported
	// when the backend service uses Serverless NEG.
	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
	// SuccessRateRequestVolume: The minimum number of total requests that must be
	// collected in one interval (as defined by the interval duration above) to
	// include this backend endpoint in success rate based outlier detection. If
	// the volume is lower than this setting, outlier detection via success rate
	// statistics is not performed for that backend endpoint. Defaults to 100. Not
	// supported when the backend service uses Serverless NEG.
	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
	// SuccessRateStdevFactor: This factor is used to determine the ejection
	// threshold for success rate outlier ejection. The ejection threshold is the
	// difference between the mean success rate, and the product of this factor and
	// the standard deviation of the mean success rate: mean - (stdev *
	// successRateStdevFactor). This factor is divided by a thousand to get a
	// double. That is, if the desired factor is 1.9, the runtime value should be
	// 1900. Defaults to 1900. Not supported when the backend service uses
	// Serverless NEG.
	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BaseEjectionTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s OutlierDetection) MarshalJSON() ([]byte, error) {
	type NoMethod OutlierDetection
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PacketIntervals: Next free: 7
type PacketIntervals struct {
	// AvgMs: Average observed inter-packet interval in milliseconds.
	AvgMs int64 `json:"avgMs,omitempty,string"`
	// Duration: From how long ago in the past these intervals were observed.
	//
	// Possible values:
	//   "DURATION_UNSPECIFIED"
	//   "HOUR"
	//   "MAX" - From BfdSession object creation time.
	//   "MINUTE"
	Duration string `json:"duration,omitempty"`
	// MaxMs: Maximum observed inter-packet interval in milliseconds.
	MaxMs int64 `json:"maxMs,omitempty,string"`
	// MinMs: Minimum observed inter-packet interval in milliseconds.
	MinMs int64 `json:"minMs,omitempty,string"`
	// NumIntervals: Number of inter-packet intervals from which these statistics
	// were derived.
	NumIntervals int64 `json:"numIntervals,omitempty,string"`
	// Type: The type of packets for which inter-packet intervals were computed.
	//
	// Possible values:
	//   "LOOPBACK" - Only applies to Echo packets. This shows the intervals
	// between sending and receiving the same packet.
	//   "RECEIVE" - Intervals between received packets.
	//   "TRANSMIT" - Intervals between transmitted packets.
	//   "TYPE_UNSPECIFIED"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvgMs") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvgMs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketIntervals) MarshalJSON() ([]byte, error) {
	type NoMethod PacketIntervals
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PacketMirroring: Represents a Packet Mirroring resource. Packet Mirroring
// clones the traffic of specified instances in your Virtual Private Cloud
// (VPC) network and forwards it to a collector destination, such as an
// instance group of an internal TCP/UDP load balancer, for analysis or
// examination. For more information about setting up Packet Mirroring, see
// Using Packet Mirroring.
type PacketMirroring struct {
	// CollectorIlb: The Forwarding Rule resource of type
	// loadBalancingScheme=INTERNAL that will be used as collector for mirrored
	// traffic. The specified forwarding rule must have isMirroringCollector set to
	// true.
	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Enable: Indicates whether or not this packet mirroring takes effect. If set
	// to FALSE, this packet mirroring policy will not be enforced on the network.
	// The default is TRUE.
	//
	// Possible values:
	//   "FALSE"
	//   "TRUE"
	Enable string `json:"enable,omitempty"`
	// Filter: Filter for mirrored traffic. If unspecified, all IPv4 traffic is
	// mirrored.
	Filter *PacketMirroringFilter `json:"filter,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#packetMirroring for
	// packet mirrorings.
	Kind string `json:"kind,omitempty"`
	// MirroredResources: PacketMirroring mirroredResourceInfos.
	// MirroredResourceInfo specifies a set of mirrored VM instances, subnetworks
	// and/or tags for which traffic from/to all VM instances will be mirrored.
	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Network: Specifies the mirrored VPC network. Only packets in this network
	// will be mirrored. All mirrored VMs should have a NIC in the given network.
	// All mirrored subnetworks should belong to the given network.
	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
	// Priority: The priority of applying this configuration. Priority is used to
	// break ties in cases where there is more than one matching rule. In the case
	// of two rules that apply for a given Instance, the one with the
	// lowest-numbered priority value wins. Default value is 1000. Valid range is 0
	// through 65535.
	Priority int64 `json:"priority,omitempty"`
	// Region: [Output Only] URI of the region where the packetMirroring resides.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CollectorIlb") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroring) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroring
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
type PacketMirroringAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of PacketMirroring resources.
	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PacketMirroringAggregatedListWarning: [Output Only] Informational warning
// message.
type PacketMirroringAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringFilter struct {
	// IPProtocols: Protocols that apply as filter on mirrored traffic. If no
	// protocols are specified, all traffic that matches the specified CIDR ranges
	// is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4
	// traffic is mirrored.
	IPProtocols []string `json:"IPProtocols,omitempty"`
	// CidrRanges: One or more IPv4 or IPv6 CIDR ranges that apply as filters on
	// the source (ingress) or destination (egress) IP in the IP header. If no
	// ranges are specified, all IPv4 traffic that matches the specified
	// IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified,
	// all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use
	// "0.0.0.0/0,::/0".
	CidrRanges []string `json:"cidrRanges,omitempty"`
	// Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH.
	// The default is BOTH.
	//
	// Possible values:
	//   "BOTH" - Default, both directions are mirrored.
	//   "EGRESS" - Only egress traffic is mirrored.
	//   "INGRESS" - Only ingress traffic is mirrored.
	Direction string `json:"direction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IPProtocols") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringFilter) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringForwardingRuleInfo struct {
	// CanonicalUrl: [Output Only] Unique identifier for the forwarding rule;
	// defined by the server.
	CanonicalUrl string `json:"canonicalUrl,omitempty"`
	// Url: Resource URL to the forwarding rule representing the ILB configured as
	// destination of the mirrored traffic.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringForwardingRuleInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PacketMirroringList: Contains a list of PacketMirroring resources.
type PacketMirroringList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of PacketMirroring resources.
	Items []*PacketMirroring `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#packetMirroring for
	// packetMirrorings.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *PacketMirroringListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringList) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PacketMirroringListWarning: [Output Only] Informational warning message.
type PacketMirroringListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringMirroredResourceInfo struct {
	// Instances: A set of virtual machine instances that are being mirrored. They
	// must live in zones contained in the same region as this packetMirroring.
	// Note that this config will apply only to those network interfaces of the
	// Instances that belong to the network specified in this packetMirroring. You
	// may specify a maximum of 50 Instances.
	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
	// Subnetworks: A set of subnetworks for which traffic from/to all VM instances
	// will be mirrored. They must live in the same region as this packetMirroring.
	// You may specify a maximum of 5 subnetworks.
	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
	// Tags: A set of mirrored tags. Traffic from/to all VM instances that have one
	// or more of these tags will be mirrored.
	Tags []string `json:"tags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringMirroredResourceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringMirroredResourceInfoInstanceInfo struct {
	// CanonicalUrl: [Output Only] Unique identifier for the instance; defined by
	// the server.
	CanonicalUrl string `json:"canonicalUrl,omitempty"`
	// Url: Resource URL to the virtual machine instance which is being mirrored.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringMirroredResourceInfoSubnetInfo struct {
	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork; defined by
	// the server.
	CanonicalUrl string `json:"canonicalUrl,omitempty"`
	// Url: Resource URL to the subnetwork for which traffic from/to all VM
	// instances will be mirrored.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringNetworkInfo struct {
	// CanonicalUrl: [Output Only] Unique identifier for the network; defined by
	// the server.
	CanonicalUrl string `json:"canonicalUrl,omitempty"`
	// Url: URL of the network resource.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringNetworkInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringsScopedList struct {
	// PacketMirrorings: A list of packetMirrorings contained in this scope.
	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
	// Warning: Informational warning which replaces the list of packetMirrorings
	// when the list is empty.
	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PacketMirrorings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PacketMirroringsScopedListWarning: Informational warning which replaces the
// list of packetMirrorings when the list is empty.
type PacketMirroringsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PacketMirroringsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PacketMirroringsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PartnerMetadata: Model definition of partner_metadata field. To be used in
// dedicated Partner Metadata methods and to be inlined in the Instance and
// InstanceTemplate resources.
type PartnerMetadata struct {
	// Fingerprint: Instance-level hash to be used for optimistic locking.
	Fingerprint string `json:"fingerprint,omitempty"`
	// PartnerMetadata: Partner Metadata assigned to the instance. A map from a
	// subdomain to entries map. Subdomain name must be compliant with RFC1035
	// definition. The total size of all keys and values must be less than 2MB.
	// Subdomain 'metadata.compute.googleapis.com' is reserverd for instance's
	// metadata.
	PartnerMetadata map[string]StructuredEntries `json:"partnerMetadata,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PartnerMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod PartnerMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PathMatcher: A matcher for the path portion of the URL. The BackendService
// from the longest-matched rule will serve the URL. If no rule was matched,
// the default service is used.
type PathMatcher struct {
	// DefaultCustomErrorResponsePolicy: defaultCustomErrorResponsePolicy specifies
	// how the Load Balancer returns error responses when BackendServiceor
	// BackendBucket responds with an error. This policy takes effect at the
	// PathMatcher level and applies only when no policy has been defined for the
	// error code at lower levels like RouteRule and PathRule within this
	// PathMatcher. If an error code does not have a policy defined in
	// defaultCustomErrorResponsePolicy, then a policy defined for the error code
	// in UrlMap.defaultCustomErrorResponsePolicy takes effect. For example,
	// consider a UrlMap with the following configuration: -
	// UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx
	// and 4xx errors - A RouteRule for /coming_soon/ is configured for the error
	// code 404. If the request is for www.myotherdomain.com and a 404 is
	// encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes
	// effect. If a 404 response is encountered for the request
	// www.example.com/current_events/, the pathMatcher's policy takes effect. If
	// however, the request for www.example.com/coming_soon/ encounters a 404, the
	// policy in RouteRule.customErrorResponsePolicy takes effect. If any of the
	// requests in this example encounter a 500 error code, the policy at
	// UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in
	// conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take
	// precedence. Only once all retries are exhausted, the
	// defaultCustomErrorResponsePolicy is applied. While attempting a retry, if
	// load balancer is successful in reaching the service, the
	// defaultCustomErrorResponsePolicy is ignored and the response from the
	// service is returned to the client. defaultCustomErrorResponsePolicy is
	// supported only for global external Application Load Balancers.
	DefaultCustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"defaultCustomErrorResponsePolicy,omitempty"`
	// DefaultRouteAction: defaultRouteAction takes effect when none of the
	// pathRules or routeRules match. The load balancer performs advanced routing
	// actions, such as URL rewrites and header transformations, before forwarding
	// the request to the selected backend. If defaultRouteAction specifies any
	// weightedBackendServices, defaultService must not be set. Conversely if
	// defaultService is set, defaultRouteAction cannot contain any
	// weightedBackendServices. If defaultRouteAction is specified, don't set
	// defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is
	// specified, don't set defaultService. URL maps for classic Application Load
	// Balancers only support the urlRewrite action within a path matcher's
	// defaultRouteAction.
	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
	// DefaultService: The full or partial URL to the BackendService resource. This
	// URL is used if none of the pathRules or routeRules defined by this
	// PathMatcher are matched. For example, the following are all valid URLs to a
	// BackendService resource: -
	// https://www.googleapis.com/compute/v1/projects/project
	// /global/backendServices/backendService -
	// compute/v1/projects/project/global/backendServices/backendService -
	// global/backendServices/backendService If defaultRouteAction is also
	// specified, advanced routing actions, such as URL rewrites, take effect
	// before sending the request to the backend. However, if defaultService is
	// specified, defaultRouteAction cannot contain any weightedBackendServices.
	// Conversely, if defaultRouteAction specifies any weightedBackendServices,
	// defaultService must not be specified. If defaultService is specified, then
	// set either defaultUrlRedirect or defaultRouteAction.weightedBackendService.
	// Don't set both. Authorization requires one or more of the following Google
	// IAM permissions on the specified resource default_service: -
	// compute.backendBuckets.use - compute.backendServices.use
	DefaultService string `json:"defaultService,omitempty"`
	// DefaultUrlRedirect: When none of the specified pathRules or routeRules
	// match, the request is redirected to a URL specified by defaultUrlRedirect.
	// If defaultUrlRedirect is specified, then set either defaultService or
	// defaultRouteAction. Don't set both. Not supported when the URL map is bound
	// to a target gRPC proxy.
	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// HeaderAction: Specifies changes to request and response headers that need to
	// take effect for the selected backend service. HeaderAction specified here
	// are applied after the matching HttpRouteRule HeaderAction and before the
	// HeaderAction in the UrlMap HeaderAction is not supported for load balancers
	// that have their loadBalancingScheme set to EXTERNAL. Not supported when the
	// URL map is bound to a target gRPC proxy that has validateForProxyless field
	// set to true.
	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
	// Name: The name to which this PathMatcher is referred by the HostRule.
	Name string `json:"name,omitempty"`
	// PathRules: The list of path rules. Use this list instead of routeRules when
	// routing based on simple path matching is all that's required. The order by
	// which path rules are specified does not matter. Matches are always done on
	// the longest-path-first basis. For example: a pathRule with a path /a/b/c/*
	// will match before /a/b/* irrespective of the order in which those paths
	// appear in this list. Within a given pathMatcher, only one of pathRules or
	// routeRules must be set.
	PathRules []*PathRule `json:"pathRules,omitempty"`
	// RouteRules: The list of HTTP route rules. Use this list instead of pathRules
	// when advanced route matching and routing actions are desired. routeRules are
	// evaluated in order of priority, from the lowest to highest number. Within a
	// given pathMatcher, you can set only one of pathRules or routeRules.
	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DefaultCustomErrorResponsePolicy") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "DefaultCustomErrorResponsePolicy") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s PathMatcher) MarshalJSON() ([]byte, error) {
	type NoMethod PathMatcher
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PathRule: A path-matching rule for a URL. If matched, will use the specified
// BackendService to handle the traffic arriving at this URL.
type PathRule struct {
	// CustomErrorResponsePolicy: customErrorResponsePolicy specifies how the Load
	// Balancer returns error responses when BackendServiceor BackendBucket
	// responds with an error. If a policy for an error code is not configured for
	// the PathRule, a policy for the error code configured in
	// pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not
	// specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy
	// configured in UrlMap.defaultCustomErrorResponsePolicy takes effect. For
	// example, consider a UrlMap with the following configuration: -
	// UrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx
	// and 4xx errors - A PathRule for /coming_soon/ is configured for the error
	// code 404. If the request is for www.myotherdomain.com and a 404 is
	// encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes
	// effect. If a 404 response is encountered for the request
	// www.example.com/current_events/, the pathMatcher's policy takes effect. If
	// however, the request for www.example.com/coming_soon/ encounters a 404, the
	// policy in PathRule.customErrorResponsePolicy takes effect. If any of the
	// requests in this example encounter a 500 error code, the policy at
	// UrlMap.defaultCustomErrorResponsePolicy takes effect.
	// customErrorResponsePolicy is supported only for global external Application
	// Load Balancers.
	CustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"customErrorResponsePolicy,omitempty"`
	// Paths: The list of path patterns to match. Each must start with / and the
	// only place a * is allowed is at the end following a /. The string fed to the
	// path matcher does not include any text after the first ? or #, and those
	// chars are not allowed here.
	Paths []string `json:"paths,omitempty"`
	// RouteAction: In response to a matching path, the load balancer performs
	// advanced routing actions, such as URL rewrites and header transformations,
	// before forwarding the request to the selected backend. If routeAction
	// specifies any weightedBackendServices, service must not be set. Conversely
	// if service is set, routeAction cannot contain any weightedBackendServices.
	// Only one of routeAction or urlRedirect must be set. URL maps for classic
	// Application Load Balancers only support the urlRewrite action within a path
	// rule's routeAction.
	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
	// Service: The full or partial URL of the backend service resource to which
	// traffic is directed if this rule is matched. If routeAction is also
	// specified, advanced routing actions, such as URL rewrites, take effect
	// before sending the request to the backend. However, if service is specified,
	// routeAction cannot contain any weightedBackendServices. Conversely, if
	// routeAction specifies any weightedBackendServices, service must not be
	// specified. Only one of urlRedirect, service or
	// routeAction.weightedBackendService must be set.
	Service string `json:"service,omitempty"`
	// UrlRedirect: When a path pattern is matched, the request is redirected to a
	// URL specified by urlRedirect. If urlRedirect is specified, service or
	// routeAction must not be set. Not supported when the URL map is bound to a
	// target gRPC proxy.
	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomErrorResponsePolicy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomErrorResponsePolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PathRule) MarshalJSON() ([]byte, error) {
	type NoMethod PathRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PeerAuthenticationMethod: [Deprecated] Configuration for the peer
// authentication method. Configuration for the peer authentication method.
type PeerAuthenticationMethod struct {
	// Mtls: Set if mTLS is used for peer authentication.
	Mtls *MutualTls `json:"mtls,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mtls") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mtls") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PeerAuthenticationMethod) MarshalJSON() ([]byte, error) {
	type NoMethod PeerAuthenticationMethod
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PerInstanceConfig struct {
	// Fingerprint: Fingerprint of this per-instance config. This field can be used
	// in optimistic locking. It is ignored when inserting a per-instance config.
	// An up-to-date fingerprint must be provided in order to update an existing
	// per-instance configuration or the field needs to be unset.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Name: The name of a per-instance configuration and its corresponding
	// instance. Serves as a merge key during UpdatePerInstanceConfigs operations,
	// that is, if a per-instance configuration with the same name exists then it
	// will be updated, otherwise a new one will be created for the VM instance
	// with the same name. An attempt to create a per-instance configconfiguration
	// for a VM instance that either doesn't exist or is not part of the group will
	// result in an error.
	Name string `json:"name,omitempty"`
	// PreservedState: The intended preserved state for the given instance. Does
	// not contain preserved state generated from a stateful policy.
	PreservedState *PreservedState `json:"preservedState,omitempty"`
	// Status: The status of applying this per-instance configuration on the
	// corresponding managed instance.
	//
	// Possible values:
	//   "APPLYING" - The per-instance configuration is being applied to the
	// instance, but is not yet effective, possibly waiting for the instance to,
	// for example, REFRESH.
	//   "DELETING" - The per-instance configuration deletion is being applied on
	// the instance, possibly waiting for the instance to, for example, REFRESH.
	//   "EFFECTIVE" - The per-instance configuration is effective on the instance,
	// meaning that all disks, ips and metadata specified in this configuration are
	// attached or set on the instance.
	//   "NONE" - *[Default]* The default status, when no per-instance
	// configuration exists.
	//   "UNAPPLIED" - The per-instance configuration is set on an instance but not
	// been applied yet.
	//   "UNAPPLIED_DELETION" - The per-instance configuration has been deleted,
	// but the deletion is not yet applied.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PerInstanceConfig) MarshalJSON() ([]byte, error) {
	type NoMethod PerInstanceConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Permission: [Deprecated] All fields defined in a permission are ANDed.
type Permission struct {
	// Constraints: Extra custom constraints. The constraints are ANDed together.
	Constraints []*PermissionConstraint `json:"constraints,omitempty"`
	// Hosts: Used in Ingress or Egress Gateway cases to specify hosts that the
	// policy applies to. Exact match, prefix match, and suffix match are
	// supported.
	Hosts []string `json:"hosts,omitempty"`
	// Methods: HTTP method.
	Methods []string `json:"methods,omitempty"`
	// NotHosts: Negate of hosts. Specifies exclusions.
	NotHosts []string `json:"notHosts,omitempty"`
	// NotMethods: Negate of methods. Specifies exclusions.
	NotMethods []string `json:"notMethods,omitempty"`
	// NotPaths: Negate of paths. Specifies exclusions.
	NotPaths []string `json:"notPaths,omitempty"`
	// NotPorts: Negate of ports. Specifies exclusions.
	NotPorts []string `json:"notPorts,omitempty"`
	// Paths: HTTP request paths or gRPC methods. Exact match, prefix match, and
	// suffix match are supported.
	Paths []string `json:"paths,omitempty"`
	// Ports: Port names or numbers.
	Ports []string `json:"ports,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Constraints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Constraints") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Permission) MarshalJSON() ([]byte, error) {
	type NoMethod Permission
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PermissionConstraint: Custom constraint that specifies a key and a list of
// allowed values for Istio attributes.
type PermissionConstraint struct {
	// Key: Key of the constraint.
	Key string `json:"key,omitempty"`
	// Values: A list of allowed values.
	Values []string `json:"values,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PermissionConstraint) MarshalJSON() ([]byte, error) {
	type NoMethod PermissionConstraint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Policy: An Identity and Access Management (IAM) policy, which specifies
// access controls for Google Cloud resources. A `Policy` is a collection of
// `bindings`. A `binding` binds one or more `members`, or principals, to a
// single `role`. Principals can be user accounts, service accounts, Google
// groups, and domains (such as G Suite). A `role` is a named list of
// permissions; each `role` can be an IAM predefined role or a user-created
// custom role. For some types of Google Cloud resources, a `binding` can also
// specify a `condition`, which is a logical expression that allows access to a
// resource only if the expression evaluates to `true`. A condition can add
// constraints based on attributes of the request, the resource, or both. To
// learn which resources support conditions in their IAM policies, see the IAM
// documentation
// (https://cloud.google.com/iam/help/conditions/resource-policies). **JSON
// example:** ``` { "bindings": [ { "role":
// "roles/resourcemanager.organizationAdmin", "members": [
// "user:mike@example.com", "group:admins@example.com", "domain:google.com",
// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role":
// "roles/resourcemanager.organizationViewer", "members": [
// "user:eve@example.com" ], "condition": { "title": "expirable access",
// "description": "Does not grant access after Sep 2020", "expression":
// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag":
// "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: -
// members: - user:mike@example.com - group:admins@example.com -
// domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
// role: roles/resourcemanager.organizationAdmin - members: -
// user:eve@example.com role: roles/resourcemanager.organizationViewer
// condition: title: expirable access description: Does not grant access after
// Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
// etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features,
// see the IAM documentation (https://cloud.google.com/iam/docs/).
type Policy struct {
	// AuditConfigs: Specifies cloud audit logging configuration for this policy.
	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
	// Bindings: Associates a list of `members`, or principals, with a `role`.
	// Optionally, may specify a `condition` that determines how and when the
	// `bindings` are applied. Each of the `bindings` must contain at least one
	// principal. The `bindings` in a `Policy` can refer to up to 1,500 principals;
	// up to 250 of these principals can be Google groups. Each occurrence of a
	// principal counts towards these limits. For example, if the `bindings` grant
	// 50 different roles to `user:alice@example.com`, and not to any other
	// principal, then you can add another 1,450 principals to the `bindings` in
	// the `Policy`.
	Bindings []*Binding `json:"bindings,omitempty"`
	// Etag: `etag` is used for optimistic concurrency control as a way to help
	// prevent simultaneous updates of a policy from overwriting each other. It is
	// strongly suggested that systems make use of the `etag` in the
	// read-modify-write cycle to perform policy updates in order to avoid race
	// conditions: An `etag` is returned in the response to `getIamPolicy`, and
	// systems are expected to put that etag in the request to `setIamPolicy` to
	// ensure that their change will be applied to the same version of the policy.
	// **Important:** If you use IAM Conditions, you must include the `etag` field
	// whenever you call `setIamPolicy`. If you omit this field, then IAM allows
	// you to overwrite a version `3` policy with a version `1` policy, and all of
	// the conditions in the version `3` policy are lost.
	Etag string `json:"etag,omitempty"`
	// Rules: This is deprecated and has no effect. Do not use.
	Rules []*Rule `json:"rules,omitempty"`
	// Version: Specifies the format of the policy. Valid values are `0`, `1`, and
	// `3`. Requests that specify an invalid value are rejected. Any operation that
	// affects conditional role bindings must specify version `3`. This requirement
	// applies to the following operations: * Getting a policy that includes a
	// conditional role binding * Adding a conditional role binding to a policy *
	// Changing a conditional role binding in a policy * Removing any role binding,
	// with or without a condition, from a policy that includes conditions
	// **Important:** If you use IAM Conditions, you must include the `etag` field
	// whenever you call `setIamPolicy`. If you omit this field, then IAM allows
	// you to overwrite a version `3` policy with a version `1` policy, and all of
	// the conditions in the version `3` policy are lost. If a policy does not
	// include any conditions, operations on that policy may specify any valid
	// version or leave the field unset. To learn which resources support
	// conditions in their IAM policies, see the IAM documentation
	// (https://cloud.google.com/iam/help/conditions/resource-policies).
	Version int64 `json:"version,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuditConfigs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Policy) MarshalJSON() ([]byte, error) {
	type NoMethod Policy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PreconfiguredWafSet struct {
	// ExpressionSets: List of entities that are currently supported for WAF rules.
	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpressionSets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
	type NoMethod PreconfiguredWafSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PreservedState: Preserved state for a given instance.
type PreservedState struct {
	// Disks: Preserved disks defined for this instance. This map is keyed with the
	// device names of the disks.
	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
	// ExternalIPs: Preserved external IPs defined for this instance. This map is
	// keyed with the name of the network interface.
	ExternalIPs map[string]PreservedStatePreservedNetworkIp `json:"externalIPs,omitempty"`
	// InternalIPs: Preserved internal IPs defined for this instance. This map is
	// keyed with the name of the network interface.
	InternalIPs map[string]PreservedStatePreservedNetworkIp `json:"internalIPs,omitempty"`
	// Metadata: Preserved metadata defined for this instance.
	Metadata map[string]string `json:"metadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disks") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PreservedState) MarshalJSON() ([]byte, error) {
	type NoMethod PreservedState
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PreservedStatePreservedDisk struct {
	// AutoDelete: These stateful disks will never be deleted during autohealing,
	// update, instance recreate operations. This flag is used to configure if the
	// disk should be deleted after it is no longer used by the group, e.g. when
	// the given instance or the whole MIG is deleted. Note: disks attached in
	// READ_ONLY mode cannot be auto-deleted.
	//
	// Possible values:
	//   "NEVER"
	//   "ON_PERMANENT_INSTANCE_DELETION"
	AutoDelete string `json:"autoDelete,omitempty"`
	// Mode: The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
	// If not specified, the default is to attach the disk in READ_WRITE mode.
	//
	// Possible values:
	//   "READ_ONLY" - Attaches this disk in read-only mode. Multiple VM instances
	// can use a disk in READ_ONLY mode at a time.
	//   "READ_WRITE" - *[Default]* Attaches this disk in READ_WRITE mode. Only one
	// VM instance at a time can be attached to a disk in READ_WRITE mode.
	Mode string `json:"mode,omitempty"`
	// Source: The URL of the disk resource that is stateful and should be attached
	// to the VM instance.
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDelete") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
	type NoMethod PreservedStatePreservedDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PreservedStatePreservedNetworkIp struct {
	// AutoDelete: These stateful IPs will never be released during autohealing,
	// update or VM instance recreate operations. This flag is used to configure if
	// the IP reservation should be deleted after it is no longer used by the
	// group, e.g. when the given instance or the whole group is deleted.
	//
	// Possible values:
	//   "NEVER"
	//   "ON_PERMANENT_INSTANCE_DELETION"
	AutoDelete string `json:"autoDelete,omitempty"`
	// IpAddress: Ip address representation
	IpAddress *PreservedStatePreservedNetworkIpIpAddress `json:"ipAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDelete") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PreservedStatePreservedNetworkIp) MarshalJSON() ([]byte, error) {
	type NoMethod PreservedStatePreservedNetworkIp
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PreservedStatePreservedNetworkIpIpAddress struct {
	// Address: The URL of the reservation for this IP address.
	Address string `json:"address,omitempty"`
	// Literal: An IPv4 internal network address to assign to the instance for this
	// network interface.
	Literal string `json:"literal,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PreservedStatePreservedNetworkIpIpAddress) MarshalJSON() ([]byte, error) {
	type NoMethod PreservedStatePreservedNetworkIpIpAddress
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Principal: [Deprecated] All fields defined in a principal are ANDed.
type Principal struct {
	// Condition: An expression to specify custom condition.
	Condition string `json:"condition,omitempty"`
	// Groups: The groups the principal belongs to. Exact match, prefix match, and
	// suffix match are supported.
	Groups []string `json:"groups,omitempty"`
	// Ips: IPv4 or IPv6 address or range (In CIDR format)
	Ips []string `json:"ips,omitempty"`
	// Namespaces: The namespaces. Exact match, prefix match, and suffix match are
	// supported.
	Namespaces []string `json:"namespaces,omitempty"`
	// NotGroups: Negate of groups. Specifies exclusions.
	NotGroups []string `json:"notGroups,omitempty"`
	// NotIps: Negate of IPs. Specifies exclusions.
	NotIps []string `json:"notIps,omitempty"`
	// NotNamespaces: Negate of namespaces. Specifies exclusions.
	NotNamespaces []string `json:"notNamespaces,omitempty"`
	// NotUsers: Negate of users. Specifies exclusions.
	NotUsers []string `json:"notUsers,omitempty"`
	// Properties: A map of Istio attribute to expected values. Exact match, prefix
	// match, and suffix match are supported for values. For example,
	// `request.headers[version]: "v1". The properties are ANDed together.
	Properties map[string]string `json:"properties,omitempty"`
	// Users: The user names/IDs or service accounts. Exact match, prefix match,
	// and suffix match are supported.
	Users []string `json:"users,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Condition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Condition") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Principal) MarshalJSON() ([]byte, error) {
	type NoMethod Principal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Project: Represents a Project resource. A project is used to organize
// resources in a Google Cloud Platform environment. For more information, read
// about the Resource Hierarchy.
type Project struct {
	// CloudArmorTier: [Output Only] The Cloud Armor tier for this project. It can
	// be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this
	// field is not specified, it is assumed to be CA_STANDARD.
	//
	// Possible values:
	//   "CA_ENTERPRISE_ANNUAL" - Enterprise tier protection billed annually.
	//   "CA_ENTERPRISE_PAYGO" - Enterprise tier protection billed monthly.
	//   "CA_STANDARD" - Standard protection.
	CloudArmorTier string `json:"cloudArmorTier,omitempty"`
	// CommonInstanceMetadata: Metadata key/value pairs available to all instances
	// contained in this project. See Custom metadata for more information.
	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DefaultNetworkTier: This signifies the default network tier used for
	// configuring resources of the project and can only take the following values:
	// PREMIUM, STANDARD. Initially the default network tier is PREMIUM.
	//
	// Possible values:
	//   "FIXED_STANDARD" - Public internet quality with fixed bandwidth.
	//   "PREMIUM" - High quality, Google-grade network tier, support for all
	// networking products.
	//   "SELECT" - Price competitive network tier, support for all networking
	// products.
	//   "STANDARD" - Public internet quality, only limited support for other
	// networking products.
	//   "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for
	// FIXED_STANDARD when fixed standard tier is expired or not configured.
	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
	// DefaultServiceAccount: [Output Only] Default service account used by VMs
	// running in this project.
	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
	// Description: An optional textual description of the resource.
	Description string `json:"description,omitempty"`
	// EnabledFeatures: Restricted features enabled for use on this project.
	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server. This is *not* the project ID, and is just a unique ID
	// used by Compute Engine to identify resources.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#project for
	// projects.
	Kind string `json:"kind,omitempty"`
	// ManagedProtectionTier: [Output Only] The Cloud Armor Managed Protection
	// (CAMP) tier for this project. It can be one of the following values:
	// CA_STANDARD, CAMP_PLUS_PAYGO. If this field is not specified, it is assumed
	// to be CA_STANDARD.
	//
	// Possible values:
	//   "CAMP_PLUS_ANNUAL" - Plus tier protection annual.
	//   "CAMP_PLUS_PAYGO" - Plus tier protection monthly.
	//   "CA_STANDARD" - Standard protection.
	ManagedProtectionTier string `json:"managedProtectionTier,omitempty"`
	// Name: The project ID. For example: my-example-project. Use the project ID to
	// make requests to Compute Engine.
	Name string `json:"name,omitempty"`
	// Quotas: [Output Only] Quotas assigned to this project.
	Quotas []*Quota `json:"quotas,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// UsageExportLocation: The naming prefix for daily usage reports and the
	// Google Cloud Storage bucket where they are stored.
	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
	// VmDnsSetting: [Output Only] Default internal DNS setting used by VMs running
	// in this project.
	//
	// Possible values:
	//   "GLOBAL_DEFAULT"
	//   "UNSPECIFIED_VM_DNS_SETTING"
	//   "ZONAL_DEFAULT"
	//   "ZONAL_ONLY"
	VmDnsSetting string `json:"vmDnsSetting,omitempty"`
	// XpnProjectStatus: [Output Only] The role this project has in a shared VPC
	// configuration. Currently, only projects with the host role, which is
	// specified by the value HOST, are differentiated.
	//
	// Possible values:
	//   "HOST"
	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CloudArmorTier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudArmorTier") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Project) MarshalJSON() ([]byte, error) {
	type NoMethod Project
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsDisableXpnResourceRequest struct {
	// XpnResource: Service resource (a.k.a service project) ID.
	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "XpnResource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "XpnResource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsDisableXpnResourceRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsEnableXpnResourceRequest struct {
	// XpnResource: Service resource (a.k.a service project) ID.
	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "XpnResource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "XpnResource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsEnableXpnResourceRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsGetXpnResources struct {
	// Kind: [Output Only] Type of resource. Always compute#projectsGetXpnResources
	// for lists of service resources (a.k.a service projects)
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Resources: Service resources (a.k.a service projects) attached to this
	// project as their shared VPC host.
	Resources []*XpnResourceId `json:"resources,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsGetXpnResources
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsListXpnHostsRequest struct {
	// Organization: Optional organization ID managed by Cloud Resource Manager,
	// for which to list shared VPC host projects. If not specified, the
	// organization will be inferred from the project.
	Organization string `json:"organization,omitempty"`
	// ReturnPartialPage: Opt-in for partial page behavior which provides a partial
	// filled page (number of items on which may be smaller than maxResults) within
	// the API deadline. If opt-in, then the user should rely on if nextPageToken
	// is empty in the response to determine if there is a next page. Empty page is
	// also valid and possible. The default value is false.
	ReturnPartialPage bool `json:"returnPartialPage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Organization") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Organization") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsListXpnHostsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsSetCloudArmorTierRequest struct {
	// CloudArmorTier: Managed protection tier to be set.
	//
	// Possible values:
	//   "CA_ENTERPRISE_ANNUAL" - Enterprise tier protection billed annually.
	//   "CA_ENTERPRISE_PAYGO" - Enterprise tier protection billed monthly.
	//   "CA_STANDARD" - Standard protection.
	CloudArmorTier string `json:"cloudArmorTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloudArmorTier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloudArmorTier") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsSetCloudArmorTierRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsSetCloudArmorTierRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsSetDefaultNetworkTierRequest struct {
	// NetworkTier: Default network tier to be set.
	//
	// Possible values:
	//   "FIXED_STANDARD" - Public internet quality with fixed bandwidth.
	//   "PREMIUM" - High quality, Google-grade network tier, support for all
	// networking products.
	//   "SELECT" - Price competitive network tier, support for all networking
	// products.
	//   "STANDARD" - Public internet quality, only limited support for other
	// networking products.
	//   "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for
	// FIXED_STANDARD when fixed standard tier is expired or not configured.
	NetworkTier string `json:"networkTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkTier") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsSetDefaultNetworkTierRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsSetDefaultServiceAccountRequest struct {
	// Email: Email address of the service account.
	Email string `json:"email,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Email") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsSetDefaultServiceAccountRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsSetDefaultServiceAccountRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ProjectsSetManagedProtectionTierRequest struct {
	// ManagedProtectionTier: Managed protection tier to be set.
	//
	// Possible values:
	//   "CAMP_PLUS_ANNUAL" - Plus tier protection annual.
	//   "CAMP_PLUS_PAYGO" - Plus tier protection monthly.
	//   "CA_STANDARD" - Standard protection.
	ManagedProtectionTier string `json:"managedProtectionTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ManagedProtectionTier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManagedProtectionTier") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ProjectsSetManagedProtectionTierRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ProjectsSetManagedProtectionTierRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicAdvertisedPrefix: A public advertised prefix represents an aggregated
// IP prefix or netblock which customers bring to cloud. The IP prefix is a
// single unit of route advertisement and is announced globally to the
// internet.
type PublicAdvertisedPrefix struct {
	// ByoipApiVersion: [Output Only] The version of BYOIP API.
	//
	// Possible values:
	//   "V1" - This public advertised prefix can be used to create both regional
	// and global public delegated prefixes. It usually takes 4 weeks to create or
	// delete a public delegated prefix. The BGP status cannot be changed.
	//   "V2" - This public advertised prefix can only be used to create regional
	// public delegated prefixes. Public delegated prefix creation and deletion
	// takes minutes and the BGP status can be modified.
	ByoipApiVersion string `json:"byoipApiVersion,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DnsVerificationIp: The address to be used for reverse DNS verification.
	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a new PublicAdvertisedPrefix. An up-to-date
	// fingerprint must be provided in order to update the PublicAdvertisedPrefix,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a
	// PublicAdvertisedPrefix.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// IpCidrRange: The address range, in CIDR format, represented by this public
	// advertised prefix.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#publicAdvertisedPrefix for public advertised prefixes.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// PdpScope: Specifies how child public delegated prefix will be scoped. It
	// could be one of following values: - `REGIONAL`: The public delegated prefix
	// is regional only. The provisioning will take a few minutes. - `GLOBAL`: The
	// public delegated prefix is global only. The provisioning will take ~4 weeks.
	// - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is
	// BYOIP V1 legacy prefix. This is output only value and no longer supported in
	// BYOIP V2.
	//
	// Possible values:
	//   "GLOBAL" - The public delegated prefix is global only. The provisioning
	// will take ~4 weeks.
	//   "GLOBAL_AND_REGIONAL" - The public delegated prefixes is BYOIP V1 legacy
	// prefix. This is output only value and no longer supported in BYOIP V2.
	//   "REGIONAL" - The public delegated prefix is regional only. The
	// provisioning will take a few minutes.
	PdpScope string `json:"pdpScope,omitempty"`
	// PublicDelegatedPrefixs: [Output Only] The list of public delegated prefixes
	// that exist for this public advertised prefix.
	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL with id for the resource.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SharedSecret: [Output Only] The shared secret to be used for reverse DNS
	// verification.
	SharedSecret string `json:"sharedSecret,omitempty"`
	// Status: The status of the public advertised prefix. Possible values include:
	// - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has
	// configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. -
	// `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. -
	// `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. -
	// `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. -
	// `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.
	//
	// Possible values:
	//   "ANNOUNCED_TO_INTERNET" - The prefix is announced to Internet.
	//   "INITIAL" - RPKI validation is complete.
	//   "PREFIX_CONFIGURATION_COMPLETE" - The prefix is fully configured.
	//   "PREFIX_CONFIGURATION_IN_PROGRESS" - The prefix is being configured.
	//   "PREFIX_REMOVAL_IN_PROGRESS" - The prefix is being removed.
	//   "PTR_CONFIGURED" - User has configured the PTR.
	//   "READY_TO_ANNOUNCE" - The prefix is currently withdrawn but ready to be
	// announced.
	//   "REVERSE_DNS_LOOKUP_FAILED" - Reverse DNS lookup failed.
	//   "VALIDATED" - Reverse DNS lookup is successful.
	Status string `json:"status,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ByoipApiVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ByoipApiVersion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
	type NoMethod PublicAdvertisedPrefix
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicAdvertisedPrefixList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of PublicAdvertisedPrefix resources.
	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#publicAdvertisedPrefix for public advertised prefixes.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
	type NoMethod PublicAdvertisedPrefixList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicAdvertisedPrefixListWarning: [Output Only] Informational warning
// message.
type PublicAdvertisedPrefixListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PublicAdvertisedPrefixListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicAdvertisedPrefixListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PublicAdvertisedPrefixListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range which
// can be used to assign addresses.
type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
	// IpRange: The IP address range of the public delegated prefix
	IpRange string `json:"ipRange,omitempty"`
	// Name: The name of the public delegated prefix
	Name string `json:"name,omitempty"`
	// Project: The project number of the public delegated prefix
	Project string `json:"project,omitempty"`
	// Region: The region of the public delegated prefix if it is regional. If
	// absent, the prefix is global.
	Region string `json:"region,omitempty"`
	// Status: The status of the public delegated prefix. Possible values are:
	// INITIALIZING: The public delegated prefix is being initialized and addresses
	// cannot be created yet. ANNOUNCED: The public delegated prefix is active.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpRange") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an IP
// block within a PublicAdvertisedPrefix that is configured within a single
// cloud scope (global or region). IPs in the block can be allocated to
// resources within that scope. Public delegated prefixes may be further broken
// up into smaller IP blocks in the same scope as the parent block.
type PublicDelegatedPrefix struct {
	// AllocatablePrefixLength: The allocatable prefix length supported by this
	// public delegated prefix. This field is optional and cannot be set for
	// prefixes in DELEGATION mode. It cannot be set for IPv4 prefixes either, and
	// it always defaults to 32.
	AllocatablePrefixLength int64 `json:"allocatablePrefixLength,omitempty"`
	// ByoipApiVersion: [Output Only] The version of BYOIP API.
	//
	// Possible values:
	//   "V1" - This public delegated prefix usually takes 4 weeks to delete, and
	// the BGP status cannot be changed. Announce and Withdraw APIs can not be used
	// on this prefix.
	//   "V2" - This public delegated prefix takes minutes to delete. Announce and
	// Withdraw APIs can be used on this prefix to change the BGP status.
	ByoipApiVersion string `json:"byoipApiVersion,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a new PublicDelegatedPrefix. An up-to-date
	// fingerprint must be provided in order to update the PublicDelegatedPrefix,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a
	// PublicDelegatedPrefix.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// IpCidrRange: The IP address range, in CIDR format, represented by this
	// public delegated prefix.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// IsLiveMigration: If true, the prefix will be live migrated.
	IsLiveMigration bool `json:"isLiveMigration,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#publicDelegatedPrefix for public delegated prefixes.
	Kind string `json:"kind,omitempty"`
	// Mode: The public delegated prefix mode for IPv6 only.
	//
	// Possible values:
	//   "DELEGATION" - The public delegated prefix is used for further
	// sub-delegation only. Such prefixes cannot set allocatablePrefixLength.
	//   "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" - The public delegated prefix is
	// used for creating forwarding rules only. Such prefixes cannot set
	// publicDelegatedSubPrefixes.
	Mode string `json:"mode,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix or
	// PublicDelegatedPrefix.
	ParentPrefix string `json:"parentPrefix,omitempty"`
	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes that
	// exist for this public delegated prefix.
	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
	// Region: [Output Only] URL of the region where the public delegated prefix
	// resides. This field applies only to the region resource. You must specify
	// this field as part of the HTTP request URL. It is not settable as a field in
	// the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL with id for the resource.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: [Output Only] The status of the public delegated prefix, which can
	// be one of following values: - `INITIALIZING` The public delegated prefix is
	// being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE`
	// The public delegated prefix is a live migration prefix and is active. -
	// `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public
	// delegated prefix is being deprovsioned.
	//
	// Possible values:
	//   "ANNOUNCED" - The public delegated prefix is active.
	//   "ANNOUNCED_TO_GOOGLE" - The prefix is announced within Google network.
	//   "ANNOUNCED_TO_INTERNET" - The prefix is announced to Internet and within
	// Google.
	//   "DELETING" - The public delegated prefix is being deprovsioned.
	//   "INITIALIZING" - The public delegated prefix is being initialized and
	// addresses cannot be created yet.
	//   "READY_TO_ANNOUNCE" - The public delegated prefix is currently withdrawn
	// but ready to be announced.
	Status string `json:"status,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AllocatablePrefixLength") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllocatablePrefixLength") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefix
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicDelegatedPrefixAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of PublicDelegatedPrefixesScopedList resources.
	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of public
	// delegated prefixes.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicDelegatedPrefixAggregatedListWarning: [Output Only] Informational
// warning message.
type PublicDelegatedPrefixAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicDelegatedPrefixAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicDelegatedPrefixList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of PublicDelegatedPrefix resources.
	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#publicDelegatedPrefixList for public delegated prefixes.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
// message.
type PublicDelegatedPrefixListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicDelegatedPrefixListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
// PublicDelegatedPrefix.
type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
	// AllocatablePrefixLength: The allocatable prefix length supported by this
	// PublicDelegatedSubPrefix.
	AllocatablePrefixLength int64 `json:"allocatablePrefixLength,omitempty"`
	// DelegateeProject: Name of the project scoping this PublicDelegatedSubPrefix.
	DelegateeProject string `json:"delegateeProject,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// IpCidrRange: The IP address range, in CIDR format, represented by this sub
	// public delegated prefix.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// IsAddress: Whether the sub prefix is delegated to create Address resources
	// in the delegatee project.
	IsAddress bool `json:"isAddress,omitempty"`
	// Mode: The PublicDelegatedSubPrefix mode for IPv6 only.
	//
	// Possible values:
	//   "DELEGATION" - The public delegated prefix is used for further
	// sub-delegation only. Such prefixes cannot set allocatablePrefixLength.
	//   "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" - The public delegated prefix is
	// used for creating forwarding rules only. Such prefixes cannot set
	// publicDelegatedSubPrefixes.
	Mode string `json:"mode,omitempty"`
	// Name: The name of the sub public delegated prefix.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] The region of the sub public delegated prefix if it is
	// regional. If absent, the sub prefix is global.
	Region string `json:"region,omitempty"`
	// Status: [Output Only] The status of the sub public delegated prefix.
	//
	// Possible values:
	//   "ACTIVE"
	//   "INACTIVE"
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllocatablePrefixLength") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllocatablePrefixLength") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicDelegatedPrefixesScopedList struct {
	// PublicDelegatedPrefixes: [Output Only] A list of PublicDelegatedPrefixes
	// contained in this scope.
	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// public delegated prefixes when the list is empty.
	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PublicDelegatedPrefixes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
// warning which replaces the list of public delegated prefixes when the list
// is empty.
type PublicDelegatedPrefixesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PublicDelegatedPrefixesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PublicDelegatedPrefixesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// QueuedResource: QueuedResource represents a request for future capacity. The
// capacity is delivered in the form of other GCE resources, either Instances
// or Reservations.
type QueuedResource struct {
	// BulkInsertInstanceResource: Specification of VM instances to create.
	BulkInsertInstanceResource *BulkInsertInstanceResource `json:"bulkInsertInstanceResource,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#queuedResource for
	// QueuedResources.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// QueuingPolicy: Queuing parameters for the requested capacity.
	QueuingPolicy *QueuingPolicy `json:"queuingPolicy,omitempty"`
	// SelfLink: [Output only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// State: [Output only] High-level status of the request.
	//
	// Possible values:
	//   "ACCEPTED" - The request was created successfully and was accepted for
	// provisioning when the capacity becomes available.
	//   "CANCELLED" - The request was canceled by the user.
	//   "CREATING" - QueuedResource is being created and may still fail creation.
	//   "DELETING" - The request is being deleted.
	//   "FAILED" - The request failed before or during provisioning.
	//   "PROVISIONING" - The target resource(s) are being provisioned.
	//   "STATE_UNSPECIFIED"
	//   "SUCCEEDED" - The request succeeded.
	State string `json:"state,omitempty"`
	// Status: [Output only] Result of queuing and provisioning based on deferred
	// capacity.
	Status *QueuedResourceStatus `json:"status,omitempty"`
	// Zone: [Output Only] URL of the zone where the resource resides. Only
	// applicable for zonal resources. You must specify this field as part of the
	// HTTP request URL. It is not settable as a field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "BulkInsertInstanceResource")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BulkInsertInstanceResource") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResource) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourceList struct {
	// Id: Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of QueuedResource resources.
	Items []*QueuedResource `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: This token allows you to get the next page of results for
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: Informational warning message.
	Warning *QueuedResourceListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceList) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// QueuedResourceListWarning: Informational warning message.
type QueuedResourceListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*QueuedResourceListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourceListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourceStatus struct {
	FailedData             *QueuedResourceStatusFailedData `json:"failedData,omitempty"`
	ProvisioningOperations []string                        `json:"provisioningOperations,omitempty"`
	QueuingPolicy          *QueuingPolicy                  `json:"queuingPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailedData") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailedData") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourceStatusFailedData struct {
	Error *QueuedResourceStatusFailedDataError `json:"error,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Error") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceStatusFailedData) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceStatusFailedData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourceStatusFailedDataError struct {
	// Errors: [Output Only] The array of errors encountered while processing this
	// operation.
	Errors []*QueuedResourceStatusFailedDataErrorErrors `json:"errors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceStatusFailedDataError) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceStatusFailedDataError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourceStatusFailedDataErrorErrors struct {
	// Code: [Output Only] The error type identifier for this error.
	Code string `json:"code,omitempty"`
	// ErrorDetails: [Output Only] An optional list of messages that contain the
	// error details. There is a set of defined message types to use for providing
	// details.The syntax depends on the error code. For example, QuotaExceededInfo
	// will have details when the error code is QUOTA_EXCEEDED.
	ErrorDetails []*QueuedResourceStatusFailedDataErrorErrorsErrorDetails `json:"errorDetails,omitempty"`
	// Location: [Output Only] Indicates the field in the request that caused the
	// error. This property is optional.
	Location string `json:"location,omitempty"`
	// Message: [Output Only] An optional, human-readable error message.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceStatusFailedDataErrorErrors) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceStatusFailedDataErrorErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourceStatusFailedDataErrorErrorsErrorDetails struct {
	ErrorInfo        *ErrorInfo         `json:"errorInfo,omitempty"`
	Help             *Help              `json:"help,omitempty"`
	LocalizedMessage *LocalizedMessage  `json:"localizedMessage,omitempty"`
	QuotaInfo        *QuotaExceededInfo `json:"quotaInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourceStatusFailedDataErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourceStatusFailedDataErrorErrorsErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourcesAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of QueuedResourcesScopedList resources.
	Items map[string]QueuedResourcesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#queuedResourcesAggregatedList for lists of QueuedResource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *QueuedResourcesAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourcesAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourcesAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// QueuedResourcesAggregatedListWarning: [Output Only] Informational warning
// message.
type QueuedResourcesAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*QueuedResourcesAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourcesAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourcesAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourcesAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourcesAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourcesAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourcesScopedList struct {
	// QueuedResources: List of QueuedResources contained in this scope.
	QueuedResources []*QueuedResource `json:"queuedResources,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *QueuedResourcesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QueuedResources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QueuedResources") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourcesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourcesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// QueuedResourcesScopedListWarning: Informational warning which replaces the
// list of backend services when the list is empty.
type QueuedResourcesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*QueuedResourcesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourcesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourcesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type QueuedResourcesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuedResourcesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod QueuedResourcesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// QueuingPolicy: Queuing parameters for the requested deferred capacity.
type QueuingPolicy struct {
	// ValidUntilDuration: Relative deadline for waiting for capacity.
	ValidUntilDuration *Duration `json:"validUntilDuration,omitempty"`
	// ValidUntilTime: Absolute deadline for waiting for capacity in RFC3339 text
	// format.
	ValidUntilTime string `json:"validUntilTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ValidUntilDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ValidUntilDuration") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QueuingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod QueuingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Quota: A quotas entry.
type Quota struct {
	// Limit: [Output Only] Quota limit for this metric.
	Limit float64 `json:"limit,omitempty"`
	// Metric: [Output Only] Name of the quota metric.
	//
	// Possible values:
	//   "A2_CPUS"
	//   "AFFINITY_GROUPS"
	//   "AMD_S9300_GPUS"
	//   "AUTOSCALERS"
	//   "BACKEND_BUCKETS"
	//   "BACKEND_SERVICES"
	//   "C2D_CPUS"
	//   "C2_CPUS"
	//   "C3_CPUS"
	//   "COMMITMENTS"
	//   "COMMITTED_A2_CPUS"
	//   "COMMITTED_C2D_CPUS"
	//   "COMMITTED_C2_CPUS"
	//   "COMMITTED_C3_CPUS"
	//   "COMMITTED_CPUS"
	//   "COMMITTED_E2_CPUS"
	//   "COMMITTED_LICENSES"
	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
	//   "COMMITTED_M3_CPUS"
	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
	//   "COMMITTED_N2A_CPUS"
	//   "COMMITTED_N2D_CPUS"
	//   "COMMITTED_N2_CPUS"
	//   "COMMITTED_NVIDIA_A100_80GB_GPUS"
	//   "COMMITTED_NVIDIA_A100_GPUS"
	//   "COMMITTED_NVIDIA_H100_GPUS"
	//   "COMMITTED_NVIDIA_K80_GPUS"
	//   "COMMITTED_NVIDIA_L4_GPUS"
	//   "COMMITTED_NVIDIA_P100_GPUS"
	//   "COMMITTED_NVIDIA_P4_GPUS"
	//   "COMMITTED_NVIDIA_T4_GPUS"
	//   "COMMITTED_NVIDIA_V100_GPUS"
	//   "COMMITTED_T2A_CPUS"
	//   "COMMITTED_T2D_CPUS"
	//   "COMMITTED_Z3_CPUS"
	//   "CPUS" - Guest CPUs
	//   "CPUS_ALL_REGIONS"
	//   "DISKS_TOTAL_GB"
	//   "E2_CPUS"
	//   "EXTERNAL_MANAGED_FORWARDING_RULES"
	//   "EXTERNAL_NETWORK_LB_FORWARDING_RULES"
	//   "EXTERNAL_PROTOCOL_FORWARDING_RULES"
	//   "EXTERNAL_VPN_GATEWAYS"
	//   "FIREWALLS"
	//   "FORWARDING_RULES"
	//   "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES"
	//   "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES"
	//   "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES"
	//   "GLOBAL_INTERNAL_ADDRESSES"
	//   "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES"
	//   "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES"
	//   "GPUS_ALL_REGIONS"
	//   "HDB_TOTAL_GB"
	//   "HDB_TOTAL_IOPS"
	//   "HDB_TOTAL_THROUGHPUT"
	//   "HEALTH_CHECKS"
	//   "IMAGES"
	//   "INSTANCES"
	//   "INSTANCE_GROUPS"
	//   "INSTANCE_GROUP_MANAGERS"
	//   "INSTANCE_TEMPLATES"
	//   "INTERCONNECTS"
	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
	//   "INTERCONNECT_TOTAL_GBPS"
	//   "INTERNAL_ADDRESSES"
	//   "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES"
	//   "IN_PLACE_SNAPSHOTS"
	//   "IN_USE_ADDRESSES"
	//   "IN_USE_BACKUP_SCHEDULES"
	//   "IN_USE_MAINTENANCE_WINDOWS"
	//   "IN_USE_SNAPSHOT_SCHEDULES"
	//   "LOCAL_SSD_TOTAL_GB"
	//   "M1_CPUS"
	//   "M2_CPUS"
	//   "M3_CPUS"
	//   "MACHINE_IMAGES"
	//   "N2A_CPUS"
	//   "N2D_CPUS"
	//   "N2_CPUS"
	//   "NETWORKS"
	//   "NETWORK_ATTACHMENTS"
	//   "NETWORK_ENDPOINT_GROUPS"
	//   "NETWORK_FIREWALL_POLICIES"
	//   "NET_LB_SECURITY_POLICIES_PER_REGION"
	//   "NET_LB_SECURITY_POLICY_RULES_PER_REGION"
	//   "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION"
	//   "NODE_GROUPS"
	//   "NODE_TEMPLATES"
	//   "NVIDIA_A100_80GB_GPUS"
	//   "NVIDIA_A100_GPUS"
	//   "NVIDIA_K80_GPUS"
	//   "NVIDIA_L4_GPUS"
	//   "NVIDIA_P100_GPUS"
	//   "NVIDIA_P100_VWS_GPUS"
	//   "NVIDIA_P4_GPUS"
	//   "NVIDIA_P4_VWS_GPUS"
	//   "NVIDIA_T4_GPUS"
	//   "NVIDIA_T4_VWS_GPUS"
	//   "NVIDIA_V100_GPUS"
	//   "PACKET_MIRRORINGS"
	//   "PD_EXTREME_TOTAL_PROVISIONED_IOPS"
	//   "PREEMPTIBLE_CPUS"
	//   "PREEMPTIBLE_LOCAL_SSD_GB"
	//   "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS"
	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
	//   "PREEMPTIBLE_NVIDIA_H100_GPUS"
	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
	//   "PREEMPTIBLE_NVIDIA_L4_GPUS"
	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
	//   "PREEMPTIBLE_TPU_LITE_DEVICE_V4"
	//   "PREEMPTIBLE_TPU_LITE_DEVICE_V5"
	//   "PREEMPTIBLE_TPU_LITE_PODSLICE_V5"
	//   "PREEMPTIBLE_TPU_PODSLICE_V4"
	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
	//   "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK"
	//   "PSC_INTERNAL_LB_FORWARDING_RULES"
	//   "PUBLIC_ADVERTISED_PREFIXES"
	//   "PUBLIC_DELEGATED_PREFIXES"
	//   "QUEUED_RESOURCES"
	//   "REGIONAL_AUTOSCALERS"
	//   "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES"
	//   "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES"
	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
	//   "REGIONAL_INTERNAL_LB_BACKEND_SERVICES"
	//   "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES"
	//   "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES"
	//   "RESERVATIONS"
	//   "RESOURCE_POLICIES"
	//   "ROUTERS"
	//   "ROUTES"
	//   "SECURITY_POLICIES"
	//   "SECURITY_POLICIES_PER_REGION"
	//   "SECURITY_POLICY_ADVANCED_RULES_PER_REGION"
	//   "SECURITY_POLICY_CEVAL_RULES"
	//   "SECURITY_POLICY_RULES"
	//   "SECURITY_POLICY_RULES_PER_REGION"
	//   "SERVICE_ATTACHMENTS"
	//   "SNAPSHOTS" - The total number of snapshots allowed for a single project.
	//   "SSD_TOTAL_GB"
	//   "SSL_CERTIFICATES"
	//   "SSL_POLICIES"
	//   "STATIC_ADDRESSES"
	//   "STATIC_BYOIP_ADDRESSES"
	//   "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES"
	//   "SUBNETWORKS"
	//   "T2A_CPUS"
	//   "T2D_CPUS"
	//   "TARGET_HTTPS_PROXIES"
	//   "TARGET_HTTP_PROXIES"
	//   "TARGET_INSTANCES"
	//   "TARGET_POOLS"
	//   "TARGET_SSL_PROXIES"
	//   "TARGET_TCP_PROXIES"
	//   "TARGET_VPN_GATEWAYS"
	//   "TPU_LITE_DEVICE_V4"
	//   "TPU_LITE_DEVICE_V5"
	//   "TPU_LITE_PODSLICE_V5"
	//   "TPU_PODSLICE_V4"
	//   "URL_MAPS"
	//   "VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES"
	//   "VPN_GATEWAYS"
	//   "VPN_TUNNELS"
	//   "XPN_SERVICE_PROJECTS"
	Metric string `json:"metric,omitempty"`
	// Owner: [Output Only] Owning resource. This is the resource on which this
	// quota is applied.
	Owner string `json:"owner,omitempty"`
	// Usage: [Output Only] Current usage of this metric.
	Usage float64 `json:"usage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Limit") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Limit") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Quota) MarshalJSON() ([]byte, error) {
	type NoMethod Quota
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *Quota) UnmarshalJSON(data []byte) error {
	type NoMethod Quota
	var s1 struct {
		Limit gensupport.JSONFloat64 `json:"limit"`
		Usage gensupport.JSONFloat64 `json:"usage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Limit = float64(s1.Limit)
	s.Usage = float64(s1.Usage)
	return nil
}

// QuotaExceededInfo: Additional details for quota exceeded error for resource
// quota.
type QuotaExceededInfo struct {
	// Dimensions: The map holding related quota dimensions.
	Dimensions map[string]string `json:"dimensions,omitempty"`
	// FutureLimit: Future quota limit being rolled out. The limit's unit depends
	// on the quota type or metric.
	FutureLimit float64 `json:"futureLimit,omitempty"`
	// Limit: Current effective quota limit. The limit's unit depends on the quota
	// type or metric.
	Limit float64 `json:"limit,omitempty"`
	// LimitName: The name of the quota limit.
	LimitName string `json:"limitName,omitempty"`
	// MetricName: The Compute Engine quota metric name.
	MetricName string `json:"metricName,omitempty"`
	// RolloutStatus: Rollout status of the future quota limit.
	//
	// Possible values:
	//   "IN_PROGRESS" - IN_PROGRESS - A rollout is in process which will change
	// the limit value to future limit.
	//   "ROLLOUT_STATUS_UNSPECIFIED" - ROLLOUT_STATUS_UNSPECIFIED - Rollout status
	// is not specified. The default value.
	RolloutStatus string `json:"rolloutStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dimensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dimensions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s QuotaExceededInfo) MarshalJSON() ([]byte, error) {
	type NoMethod QuotaExceededInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *QuotaExceededInfo) UnmarshalJSON(data []byte) error {
	type NoMethod QuotaExceededInfo
	var s1 struct {
		FutureLimit gensupport.JSONFloat64 `json:"futureLimit"`
		Limit       gensupport.JSONFloat64 `json:"limit"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.FutureLimit = float64(s1.FutureLimit)
	s.Limit = float64(s1.Limit)
	return nil
}

type RbacPolicy struct {
	// Name: Name of the RbacPolicy.
	Name string `json:"name,omitempty"`
	// Permissions: The list of permissions.
	Permissions []*Permission `json:"permissions,omitempty"`
	// Principals: The list of principals.
	Principals []*Principal `json:"principals,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RbacPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod RbacPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Reference: Represents a reference to a resource.
type Reference struct {
	// Kind: [Output Only] Type of the resource. Always compute#reference for
	// references.
	Kind string `json:"kind,omitempty"`
	// ReferenceType: A description of the reference type with no implied
	// semantics. Possible values include: 1. MEMBER_OF
	ReferenceType string `json:"referenceType,omitempty"`
	// Referrer: URL of the resource which refers to the target.
	Referrer string `json:"referrer,omitempty"`
	// Target: URL of the resource to which this reference points.
	Target string `json:"target,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Reference) MarshalJSON() ([]byte, error) {
	type NoMethod Reference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Region: Represents a Region resource. A region is a geographical area where
// a resource is located. For more information, read Regions and Zones.
type Region struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- [Output Only] The deprecation status associated with this
	// region.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: [Output Only] Textual description of the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#region for regions.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// QuotaStatusWarning: [Output Only] Warning of fetching the `quotas` field for
	// this region. This field is populated only if fetching of the `quotas` field
	// fails.
	QuotaStatusWarning *RegionQuotaStatusWarning `json:"quotaStatusWarning,omitempty"`
	// Quotas: [Output Only] Quotas assigned to this region.
	Quotas []*Quota `json:"quotas,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: [Output Only] Status of the region, either UP or DOWN.
	//
	// Possible values:
	//   "DOWN"
	//   "UP"
	Status string `json:"status,omitempty"`
	// SupportsPzs: [Output Only] Reserved for future use.
	SupportsPzs bool `json:"supportsPzs,omitempty"`
	// Zones: [Output Only] A list of zones available in this region, in the form
	// of resource URLs.
	Zones []string `json:"zones,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Region) MarshalJSON() ([]byte, error) {
	type NoMethod Region
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionQuotaStatusWarning: [Output Only] Warning of fetching the `quotas`
// field for this region. This field is populated only if fetching of the
// `quotas` field fails.
type RegionQuotaStatusWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionQuotaStatusWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionQuotaStatusWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionQuotaStatusWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionQuotaStatusWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionQuotaStatusWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionQuotaStatusWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionAddressesMoveRequest struct {
	// Description: An optional destination address description if intended to be
	// different from the source.
	Description string `json:"description,omitempty"`
	// DestinationAddress: The URL of the destination address to move to. This can
	// be a full or partial URL. For example, the following are all valid URLs to a
	// address: -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /addresses/address - projects/project/regions/region/addresses/address Note
	// that destination project must be different from the source project. So
	// /regions/region/addresses/address is not valid partial url.
	DestinationAddress string `json:"destinationAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionAddressesMoveRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionAddressesMoveRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionAutoscalerList: Contains a list of autoscalers.
type RegionAutoscalerList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Autoscaler resources.
	Items []*Autoscaler `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionAutoscalerList) MarshalJSON() ([]byte, error) {
	type NoMethod RegionAutoscalerList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionAutoscalerListWarning: [Output Only] Informational warning message.
type RegionAutoscalerListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionAutoscalerListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionAutoscalerListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionAutoscalerListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionCommitmentsUpdateReservationsRequest struct {
	// Reservations: A list of two reservations to transfer GPUs and local SSD
	// between.
	Reservations []*Reservation `json:"reservations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Reservations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Reservations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionCommitmentsUpdateReservationsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionDiskTypeList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of DiskType resources.
	Items []*DiskType `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#regionDiskTypeList for
	// region disk types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionDiskTypeList) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDiskTypeList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionDiskTypeListWarning: [Output Only] Informational warning message.
type RegionDiskTypeListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDiskTypeListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionDiskTypeListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDiskTypeListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionDisksAddResourcePoliciesRequest struct {
	// ResourcePolicies: Resource policies to be added to this disk.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDisksAddResourcePoliciesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionDisksRemoveResourcePoliciesRequest struct {
	// ResourcePolicies: Resource policies to be removed from this disk.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDisksRemoveResourcePoliciesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionDisksResizeRequest struct {
	// SizeGb: The new size of the regional persistent disk, which is specified in
	// GB.
	SizeGb int64 `json:"sizeGb,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "SizeGb") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SizeGb") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDisksResizeRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionDisksStartAsyncReplicationRequest struct {
	// AsyncSecondaryDisk: The secondary disk to start asynchronous replication to.
	// You can provide this as a partial or full URL to the resource. For example,
	// the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /disks/disk - projects/project/zones/zone/disks/disk -
	// projects/project/regions/region/disks/disk - zones/zone/disks/disk -
	// regions/region/disks/disk
	AsyncSecondaryDisk string `json:"asyncSecondaryDisk,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AsyncSecondaryDisk") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AsyncSecondaryDisk") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionDisksStartAsyncReplicationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDisksStartAsyncReplicationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
type RegionInstanceGroupList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceGroup resources.
	Items []*InstanceGroup `json:"items,omitempty"`
	// Kind: The resource type.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupListWarning: [Output Only] Informational warning message.
type RegionInstanceGroupListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagerDeleteInstanceConfigReq:
// RegionInstanceGroupManagers.deletePerInstanceConfigs
type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
	// Names: The list of instance names for which we want to delete per-instance
	// configs on this managed instance group.
	Names []string `json:"names,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Names") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Names") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagerList: Contains a list of managed instance groups.
type RegionInstanceGroupManagerList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceGroupManager resources.
	Items []*InstanceGroupManager `json:"items,omitempty"`
	// Kind: [Output Only] The resource type, which is always
	// compute#instanceGroupManagerList for a list of managed instance groups that
	// exist in th regional scope.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagerListWarning: [Output Only] Informational warning
// message.
type RegionInstanceGroupManagerListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagerListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagerPatchInstanceConfigReq:
// RegionInstanceGroupManagers.patchPerInstanceConfigs
type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
	// PerInstanceConfigs: The list of per-instance configurations to insert or
	// patch on this managed instance group.
	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagerUpdateInstanceConfigReq:
// RegionInstanceGroupManagers.updatePerInstanceConfigs
type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
	// PerInstanceConfigs: The list of per-instance configurations to insert or
	// patch on this managed instance group.
	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersAbandonInstancesRequest struct {
	// Instances: The URLs of one or more instances to abandon. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagersApplyUpdatesRequest:
// RegionInstanceGroupManagers.applyUpdatesToInstances
type RegionInstanceGroupManagersApplyUpdatesRequest struct {
	// AllInstances: Flag to update all instances instead of specified list of
	// “instances”. If the flag is set to true then the instances may not be
	// specified in the request.
	AllInstances bool `json:"allInstances,omitempty"`
	// Instances: The list of URLs of one or more instances for which you want to
	// apply updates. Each URL can be a full URL or a partial URL, such as
	// zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// MaximalAction: The maximal action that should be performed on the instances.
	// By default REPLACE. This field is deprecated, please use
	// most_disruptive_allowed_action.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MaximalAction string `json:"maximalAction,omitempty"`
	// MinimalAction: The minimal action that you want to perform on each instance
	// during the update: - REPLACE: At minimum, delete the instance and create it
	// again. - RESTART: Stop the instance and start it again. - REFRESH: Do not
	// stop the instance and limit disruption as much as possible. - NONE: Do not
	// disrupt the instance at all. By default, the minimum action is NONE. If your
	// update requires a more disruptive action than you set with this flag, the
	// necessary action is performed to execute the update.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MinimalAction string `json:"minimalAction,omitempty"`
	// MostDisruptiveAllowedAction: The most disruptive action that you want to
	// perform on each instance during the update: - REPLACE: Delete the instance
	// and create it again. - RESTART: Stop the instance and start it again. -
	// REFRESH: Do not stop the instance and limit disruption as much as possible.
	// - NONE: Do not disrupt the instance at all. By default, the most disruptive
	// allowed action is REPLACE. If your update requires a more disruptive action
	// than you set with this flag, the update request will fail.
	//
	// Possible values:
	//   "NONE" - Do not perform any action.
	//   "REFRESH" - Do not stop the instance.
	//   "REPLACE" - (Default.) Replace the instance according to the replacement
	// method option.
	//   "RESTART" - Stop the instance and start it again.
	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllInstances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllInstances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagersCreateInstancesRequest:
// RegionInstanceGroupManagers.createInstances
type RegionInstanceGroupManagersCreateInstancesRequest struct {
	// Instances: [Required] List of specifications of per-instance configs.
	Instances []*PerInstanceConfig `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersDeleteInstancesRequest struct {
	// Instances: The URLs of one or more instances to delete. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// SkipInstancesOnValidationError: Specifies whether the request should proceed
	// despite the inclusion of instances that are not members of the group or that
	// are already in the process of being deleted or abandoned. If this field is
	// set to `false` and such an instance is specified in the request, the
	// operation fails. The operation always fails if the request contains a
	// malformed instance URL or a reference to an instance that exists in a zone
	// or region other than the group's zone or region.
	SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersListErrorsResponse struct {
	// Items: [Output Only] The list of errors of the managed instance group.
	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Items") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Items") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersListErrorsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersListInstanceConfigsResp struct {
	// Items: [Output Only] The list of PerInstanceConfig.
	Items []*PerInstanceConfig `json:"items,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Items") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Items") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output Only]
// Informational warning message.
type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersListInstancesResponse struct {
	// ManagedInstances: A list of managed instances.
	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManagedInstances") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersListInstancesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersRecreateRequest struct {
	// Instances: The URLs of one or more instances to recreate. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersRecreateRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersResizeAdvancedRequest struct {
	// NoCreationRetries: If this flag is true, the managed instance group attempts
	// to create all instances initiated by this resize request only once. If there
	// is an error during creation, the managed instance group does not retry
	// create this instance, and we will decrease the targetSize of the request
	// instead. If the flag is false, the group attempts to recreate each instance
	// continuously until it succeeds. This flag matters only in the first attempt
	// of creation of an instance. After an instance is successfully created while
	// this flag is enabled, the instance behaves the same way as all the other
	// instances created with a regular resize request. In particular, if a running
	// instance dies unexpectedly at a later time and needs to be recreated, this
	// mode does not affect the recreation behavior in that scenario. This flag is
	// applicable only to the current resize request. It does not influence other
	// resize requests in any way. You can see which instances ar being created in
	// which mode by calling the get or listManagedInstances API.
	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
	// TargetSize: The number of running instances that the managed instance group
	// should maintain at any given time. The group automatically adds or removes
	// instances to maintain the number of instances specified by this parameter.
	TargetSize int64 `json:"targetSize,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NoCreationRetries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NoCreationRetries") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersResizeAdvancedRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersResumeInstancesRequest struct {
	// Instances: The URLs of one or more instances to resume. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersResumeInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersResumeInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersSetAutoHealingRequest struct {
	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
	// Fingerprint: Fingerprint of the target pools information, which is a hash of
	// the contents. This field is used for optimistic locking when you update the
	// target pool entries. This field is optional.
	Fingerprint string `json:"fingerprint,omitempty"`
	// TargetPools: The URL of all TargetPool resources to which instances in the
	// instanceGroup field are added. The target pools automatically apply to all
	// of the instances in the managed instance group.
	TargetPools []string `json:"targetPools,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersSetTemplateRequest struct {
	// InstanceTemplate: URL of the InstanceTemplate resource from which all new
	// instances will be created.
	InstanceTemplate string `json:"instanceTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceTemplate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersStartInstancesRequest struct {
	// Instances: The URLs of one or more instances to start. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersStartInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersStartInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersStopInstancesRequest struct {
	// ForceStop: If this flag is set to true, the Instance Group Manager will
	// proceed to stop the instances, skipping initialization on them.
	ForceStop bool `json:"forceStop,omitempty"`
	// Instances: The URLs of one or more instances to stop. This can be a full URL
	// or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ForceStop") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ForceStop") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersStopInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersStopInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagersSuspendInstancesRequest struct {
	// ForceSuspend: If this flag is set to true, the Instance Group Manager will
	// proceed to suspend the instances, skipping initialization on them.
	ForceSuspend bool `json:"forceSuspend,omitempty"`
	// Instances: The URLs of one or more instances to suspend. This can be a full
	// URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ForceSuspend") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ForceSuspend") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupManagersSuspendInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagersSuspendInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupsListInstances struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of InstanceWithNamedPorts resources.
	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
	// Kind: The resource type.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupsListInstances
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
// warning message.
type RegionInstanceGroupsListInstancesWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupsListInstancesWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupsListInstancesWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupsListInstancesWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupsListInstancesRequest struct {
	// InstanceState: Instances in which state should be returned. Valid options
	// are: 'ALL', 'RUNNING'. By default, it lists all instances.
	//
	// Possible values:
	//   "ALL" - Matches any status of the instances, running, non-running and
	// others.
	//   "RUNNING" - Instance is in RUNNING state if it is running.
	InstanceState string `json:"instanceState,omitempty"`
	// PortName: Name of port user is interested in. It is optional. If it is set,
	// only information about this ports will be returned. If it is not set, all
	// the named ports will be returned. Always lists all instances.
	PortName string `json:"portName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceState") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupsListInstancesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupsSetNamedPortsRequest struct {
	// Fingerprint: The fingerprint of the named ports information for this
	// instance group. Use this optional property to prevent conflicts when
	// multiple users change the named ports settings concurrently. Obtain the
	// fingerprint with the instanceGroups.get method. Then, include the
	// fingerprint in your request to ensure that you do not overwrite changes that
	// were applied from another concurrent request.
	Fingerprint string `json:"fingerprint,omitempty"`
	// NamedPorts: The list of named ports to set for this instance group.
	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionList: Contains a list of region resources.
type RegionList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Region resources.
	Items []*Region `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#regionList for lists of
	// regions.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RegionListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionList) MarshalJSON() ([]byte, error) {
	type NoMethod RegionList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionListWarning: [Output Only] Informational warning message.
type RegionListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RegionListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionNetworkEndpointGroupsAttachEndpointsRequest struct {
	// NetworkEndpoints: The list of network endpoints to be attached.
	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpoints") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionNetworkEndpointGroupsAttachEndpointsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionNetworkEndpointGroupsDetachEndpointsRequest struct {
	// NetworkEndpoints: The list of network endpoints to be detached.
	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkEndpoints") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionNetworkEndpointGroupsDetachEndpointsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse struct {
	// FirewallPolicys: Effective firewalls from firewall policy.
	FirewallPolicys []*RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
	// Firewalls: Effective firewalls on the network.
	Firewalls []*Firewall `json:"firewalls,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FirewallPolicys") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
	// DisplayName: [Output Only] The display name of the firewall policy.
	DisplayName string `json:"displayName,omitempty"`
	// Name: [Output Only] The name of the firewall policy.
	Name string `json:"name,omitempty"`
	// Priority: [Output only] Priority of firewall policy association. Not
	// applicable for type=HIERARCHY.
	Priority int64 `json:"priority,omitempty"`
	// Rules: The rules that apply to the network.
	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
	// Type: [Output Only] The type of the firewall policy. Can be one of
	// HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.
	//
	// Possible values:
	//   "HIERARCHY"
	//   "NETWORK"
	//   "NETWORK_REGIONAL"
	//   "SYSTEM_GLOBAL"
	//   "SYSTEM_REGIONAL"
	//   "UNSPECIFIED"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionSetLabelsRequest struct {
	// LabelFingerprint: The fingerprint of the previous set of labels for this
	// resource, used to detect conflicts. The fingerprint is initially generated
	// by Compute Engine and changes after every request to modify or update
	// labels. You must always provide an up-to-date fingerprint hash in order to
	// update or change labels. Make a get() request to the resource to get the
	// latest fingerprint.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: The labels to set for this resource.
	Labels map[string]string `json:"labels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LabelFingerprint") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionSetLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionSetPolicyRequest struct {
	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
	// Deprecated. Use 'policy' to specify bindings.
	Bindings []*Binding `json:"bindings,omitempty"`
	// Etag: Flatten Policy to create a backward compatible wire-format.
	// Deprecated. Use 'policy' to specify the etag.
	Etag string `json:"etag,omitempty"`
	// Policy: REQUIRED: The complete policy to be applied to the 'resource'. The
	// size of the policy is limited to a few 10s of KB. An empty policy is in
	// general a valid policy but certain services (like Projects) might reject
	// them.
	Policy *Policy `json:"policy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Bindings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Bindings") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionSetPolicyRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
	// SslCertificates: New set of SslCertificate resources to associate with this
	// TargetHttpsProxy resource.
	SslCertificates []string `json:"sslCertificates,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SslCertificates") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionUrlMapsValidateRequest struct {
	// Resource: Content of the UrlMap to be validated.
	Resource *UrlMap `json:"resource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Resource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Resource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionUrlMapsValidateRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RequestMirrorPolicy: A policy that specifies how requests intended for the
// route's backends are shadowed to a separate mirrored backend service. The
// load balancer doesn't wait for responses from the shadow service. Before
// sending traffic to the shadow service, the host or authority header is
// suffixed with -shadow.
type RequestMirrorPolicy struct {
	// BackendService: The full or partial URL to the BackendService resource being
	// mirrored to. The backend service configured for a mirroring policy must
	// reference backends that are of the same type as the original backend service
	// matched in the URL map. Serverless NEG backends are not currently supported
	// as a mirrored backend service.
	BackendService string `json:"backendService,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackendService") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackendService") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod RequestMirrorPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Reservation: Represents a reservation resource. A reservation ensures that
// capacity is held in a specific zone even if the reserved VMs are not
// running. For more information, read Reserving zonal resources.
type Reservation struct {
	// AggregateReservation: Reservation for aggregated resources, providing shape
	// flexibility.
	AggregateReservation *AllocationAggregateReservation `json:"aggregateReservation,omitempty"`
	// Commitment: [Output Only] Full or partial URL to a parent commitment. This
	// field displays for reservations that are tied to a commitment.
	Commitment string `json:"commitment,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DeleteAfterDuration: Duration time relative to reservation creation when
	// Compute Engine will automatically delete this resource.
	DeleteAfterDuration *Duration `json:"deleteAfterDuration,omitempty"`
	// DeleteAtTime: Absolute time in future when the reservation will be
	// auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text
	// format.
	DeleteAtTime string `json:"deleteAtTime,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#reservations for
	// reservations.
	Kind string `json:"kind,omitempty"`
	// Name: The name of the resource, provided by the client when initially
	// creating the resource. The resource name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// ReservationSharingPolicy: Specify the reservation sharing policy. If
	// unspecified, the reservation will not be shared with Google Cloud managed
	// services.
	ReservationSharingPolicy *AllocationReservationSharingPolicy `json:"reservationSharingPolicy,omitempty"`
	// ResourcePolicies: Resource policies to be added to this reservation. The key
	// is defined by user, and the value is resource policy url. This is to define
	// placement policy with reservation.
	ResourcePolicies map[string]string `json:"resourcePolicies,omitempty"`
	// ResourceStatus: [Output Only] Status information for Reservation resource.
	ResourceStatus *AllocationResourceStatus `json:"resourceStatus,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
	// resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ShareSettings: Specify share-settings to create a shared reservation. This
	// property is optional. For more information about the syntax and options for
	// this field and its subfields, see the guide for creating a shared
	// reservation.
	ShareSettings *ShareSettings `json:"shareSettings,omitempty"`
	// SpecificReservation: Reservation for instances with specific machine shapes.
	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
	// SpecificReservationRequired: Indicates whether the reservation can be
	// consumed by VMs with affinity for "any" reservation. If the field is set,
	// then only VMs that target the reservation by name can consume from this
	// reservation.
	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
	// Status: [Output Only] The status of the reservation.
	//
	// Possible values:
	//   "CREATING" - Resources are being allocated for the reservation.
	//   "DELETING" - Reservation is currently being deleted.
	//   "INVALID"
	//   "READY" - Reservation has allocated all its resources.
	//   "UPDATING" - Reservation is currently being resized.
	Status string `json:"status,omitempty"`
	// Zone: Zone in which the reservation resides. A zone must be provided if the
	// reservation is created within a commitment.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AggregateReservation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregateReservation") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Reservation) MarshalJSON() ([]byte, error) {
	type NoMethod Reservation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationAffinity: Specifies the reservations that this instance can
// consume from.
type ReservationAffinity struct {
	// ConsumeReservationType: Specifies the type of reservation from which this
	// instance can consume resources: ANY_RESERVATION (default),
	// SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances
	// for examples.
	//
	// Possible values:
	//   "ANY_RESERVATION" - Consume any allocation available.
	//   "NO_RESERVATION" - Do not consume from any allocated capacity.
	//   "SPECIFIC_RESERVATION" - Must consume from a specific reservation. Must
	// specify key value fields for specifying the reservations.
	//   "SPECIFIC_THEN_ANY_RESERVATION" - Prefer to consume from a specific
	// reservation, but still consume any reservation available if the specified
	// reservation is not available or exhausted. Must specify key value fields for
	// specifying the reservations.
	//   "SPECIFIC_THEN_NO_RESERVATION" - Prefer to consume from a specific
	// reservation, but still consume from the on-demand pool if the specified
	// reservation is exhausted. Must specify key value fields for specifying the
	// reservations.
	//   "UNSPECIFIED"
	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
	// Key: Corresponds to the label key of a reservation resource. To target a
	// SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the
	// key and specify the name of your reservation as its value.
	Key string `json:"key,omitempty"`
	// Values: Corresponds to the label values of a reservation resource. This can
	// be either a name to a reservation in the same project or
	// "projects/different-project/reservations/some-reservation-name" to target a
	// shared reservation in the same zone but in a different project.
	Values []string `json:"values,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsumeReservationType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsumeReservationType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationAffinity) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationAffinity
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationAggregatedList: Contains a list of reservations.
type ReservationAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Allocation resources.
	Items map[string]ReservationsScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationAggregatedListWarning: [Output Only] Informational warning
// message.
type ReservationAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationList struct {
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Items: [Output Only] A list of Allocation resources.
	Items []*Reservation `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always compute#reservationsList for
	// listsof reservations
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ReservationListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationList) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationListWarning: [Output Only] Informational warning message.
type ReservationListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ReservationListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationsResizeRequest struct {
	// SpecificSkuCount: Number of allocated resources can be resized with minimum
	// = 1 and maximum = 1000.
	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SpecificSkuCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationsResizeRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationsScopedList struct {
	// Reservations: A list of reservations contained in this scope.
	Reservations []*Reservation `json:"reservations,omitempty"`
	// Warning: Informational warning which replaces the list of reservations when
	// the list is empty.
	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Reservations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Reservations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationsScopedListWarning: Informational warning which replaces the list
// of reservations when the list is empty.
type ReservationsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourceCommitment: Commitment for a particular resource (a Commitment is
// composed of one or more of these).
type ResourceCommitment struct {
	// AcceleratorType: Name of the accelerator type resource. Applicable only when
	// the type is ACCELERATOR.
	AcceleratorType string `json:"acceleratorType,omitempty"`
	// Amount: The amount of the resource purchased (in a type-dependent unit, such
	// as bytes). For vCPUs, this can just be an integer. For memory, this must be
	// provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of
	// memory per every vCPU.
	Amount int64 `json:"amount,omitempty,string"`
	// Type: Type of resource for which this commitment applies. Possible values
	// are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.
	//
	// Possible values:
	//   "ACCELERATOR"
	//   "LOCAL_SSD"
	//   "MEMORY"
	//   "UNSPECIFIED"
	//   "VCPU"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceCommitment) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceCommitment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourceGroupReference struct {
	// Group: A URI referencing one of the instance groups or network endpoint
	// groups listed in the backend service.
	Group string `json:"group,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Group") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Group") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceGroupReference) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceGroupReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePoliciesScopedList struct {
	// ResourcePolicies: A list of resourcePolicies contained in this scope.
	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
	// Warning: Informational warning which replaces the list of resourcePolicies
	// when the list is empty.
	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourcePolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePoliciesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePoliciesScopedListWarning: Informational warning which replaces the
// list of resourcePolicies when the list is empty.
type ResourcePoliciesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePoliciesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePoliciesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePoliciesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicy: Represents a Resource Policy resource. You can use resource
// policies to schedule actions for some Compute Engine resources. For example,
// you can use them to schedule persistent disk snapshots.
type ResourcePolicy struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	Description       string `json:"description,omitempty"`
	// DiskConsistencyGroupPolicy: Resource policy for disk consistency groups.
	DiskConsistencyGroupPolicy *ResourcePolicyDiskConsistencyGroupPolicy `json:"diskConsistencyGroupPolicy,omitempty"`
	// GroupPlacementPolicy: Resource policy for instances for placement
	// configuration.
	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InstanceSchedulePolicy: Resource policy for scheduling instance operations.
	InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#resource_policies
	// for resource policies.
	Kind string `json:"kind,omitempty"`
	// Name: The name of the resource, provided by the client when initially
	// creating the resource. The resource name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name   string `json:"name,omitempty"`
	Region string `json:"region,omitempty"`
	// ResourceStatus: [Output Only] The system status of the resource policy.
	ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"`
	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
	// resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SnapshotSchedulePolicy: Resource policy for persistent disks for creating
	// snapshots.
	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
	// Status: [Output Only] The status of resource policy creation.
	//
	// Possible values:
	//   "CREATING" - Resource policy is being created.
	//   "DELETING" - Resource policy is being deleted.
	//   "EXPIRED" - Resource policy is expired and will not run again.
	//   "INVALID"
	//   "READY" - Resource policy is ready to be used.
	Status string `json:"status,omitempty"`
	// VmMaintenancePolicy: Resource policy applicable to VMs for infrastructure
	// maintenance.
	VmMaintenancePolicy *ResourcePolicyVmMaintenancePolicy `json:"vmMaintenancePolicy,omitempty"`
	WorkloadPolicy      *ResourcePolicyWorkloadPolicy      `json:"workloadPolicy,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
type ResourcePolicyAggregatedList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of ResourcePolicy resources.
	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyAggregatedListWarning: [Output Only] Informational warning
// message.
type ResourcePolicyAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePolicyAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyDailyCycle: Time window specified for daily operations.
type ResourcePolicyDailyCycle struct {
	// DaysInCycle: Defines a schedule with units measured in days. The value
	// determines how many days pass between the start of each cycle.
	DaysInCycle int64 `json:"daysInCycle,omitempty"`
	// Duration: [Output only] A predetermined duration for the window,
	// automatically chosen to be the smallest possible in the given scenario.
	Duration string `json:"duration,omitempty"`
	// StartTime: Start time of the window. This must be in UTC format that
	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example,
	// both 13:00-5 and 08:00 are valid.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DaysInCycle") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyDailyCycle
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyDiskConsistencyGroupPolicy: Resource policy for disk
// consistency groups.
type ResourcePolicyDiskConsistencyGroupPolicy struct {
}

// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
// resource placement configuration. It specifies the failure bucket separation
type ResourcePolicyGroupPlacementPolicy struct {
	// AvailabilityDomainCount: The number of availability domains to spread
	// instances across. If two instances are in different availability domain,
	// they are not in the same low latency network.
	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
	// Collocation: Specifies network collocation
	//
	// Possible values:
	//   "CLUSTERED" - Specifies collocation option that provides tight collocation
	// with minimum network latency.
	//   "COLLOCATED"
	//   "MAX_SPREAD" - Specifies collocation option that provides spreading across
	// clusters.
	//   "UNSPECIFIED_COLLOCATION"
	Collocation string `json:"collocation,omitempty"`
	// MaxDistance: Specifies the number of max logical switches.
	MaxDistance int64 `json:"maxDistance,omitempty"`
	// Scope: Scope specifies the availability domain to which the VMs should be
	// spread.
	//
	// Possible values:
	//   "HOST" - Specifies availability domain scope across hosts. VMs will be
	// spread across different hosts.
	//   "UNSPECIFIED_SCOPE" - VMs will be spread across different instrastructure
	// to not share power, host and networking.
	Scope string `json:"scope,omitempty"`
	// SliceCount: Specifies the number of slices in a multislice workload.
	SliceCount int64 `json:"sliceCount,omitempty"`
	// TpuTopology: Specifies the shape of the TPU slice
	TpuTopology string `json:"tpuTopology,omitempty"`
	// VmCount: Number of VMs in this placement group. Google does not recommend
	// that you use this field unless you use a compact policy and you want your
	// policy to work only if it contains this exact number of VMs.
	VmCount int64 `json:"vmCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailabilityDomainCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailabilityDomainCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyGroupPlacementPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyHourlyCycle: Time window specified for hourly operations.
type ResourcePolicyHourlyCycle struct {
	// Duration: [Output only] Duration of the time window, automatically chosen to
	// be smallest possible in the given scenario.
	Duration string `json:"duration,omitempty"`
	// HoursInCycle: Defines a schedule with units measured in hours. The value
	// determines how many hours pass between the start of each cycle.
	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
	// StartTime: Time within the window to start the operations. It must be in
	// format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Duration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Duration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyHourlyCycle
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy specifies
// when and how frequent certain operations are performed on the instance.
type ResourcePolicyInstanceSchedulePolicy struct {
	// ExpirationTime: The expiration time of the schedule. The timestamp is an
	// RFC3339 string.
	ExpirationTime string `json:"expirationTime,omitempty"`
	// StartTime: The start time of the schedule. The timestamp is an RFC3339
	// string.
	StartTime string `json:"startTime,omitempty"`
	// TimeZone: Specifies the time zone to be used in interpreting
	// Schedule.schedule. The value of this field must be a time zone name from the
	// tz database: https://wikipedia.org/wiki/Tz_database.
	TimeZone string `json:"timeZone,omitempty"`
	// VmStartSchedule: Specifies the schedule for starting instances.
	VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"`
	// VmStopSchedule: Specifies the schedule for stopping instances.
	VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpirationTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpirationTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyInstanceSchedulePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an instance
// operation.
type ResourcePolicyInstanceSchedulePolicySchedule struct {
	// Schedule: Specifies the frequency for the operation, using the unix-cron
	// format.
	Schedule string `json:"schedule,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Schedule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Schedule") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyInstanceSchedulePolicySchedule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePolicyList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Items: [Output Only] A list of ResourcePolicy resources.
	Items []*ResourcePolicy `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource.Always compute#resourcePoliciesList for
	// listsof resourcePolicies
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyList) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyListWarning: [Output Only] Informational warning message.
type ResourcePolicyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePolicyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyResourceStatus: Contains output only fields. Use this
// sub-message for all output fields set on ResourcePolicy. The internal
// structure of this "status" field should mimic the structure of
// ResourcePolicy proto specification.
type ResourcePolicyResourceStatus struct {
	// InstanceSchedulePolicy: [Output Only] Specifies a set of output values
	// reffering to the instance_schedule_policy system status. This field should
	// have the same name as corresponding policy field.
	InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceSchedulePolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceSchedulePolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct {
	// LastRunStartTime: [Output Only] The last time the schedule successfully ran.
	// The timestamp is an RFC3339 string.
	LastRunStartTime string `json:"lastRunStartTime,omitempty"`
	// NextRunStartTime: [Output Only] The next time the schedule is planned to
	// run. The actual time might be slightly different. The timestamp is an
	// RFC3339 string.
	NextRunStartTime string `json:"nextRunStartTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LastRunStartTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LastRunStartTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy specifies
// when and how frequently snapshots are to be created for the target disk.
// Also specifies how many and how long these scheduled snapshots should be
// retained.
type ResourcePolicySnapshotSchedulePolicy struct {
	// RetentionPolicy: Retention policy applied to snapshots created by this
	// resource policy.
	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
	// Schedule: A Vm Maintenance Policy specifies what kind of infrastructure
	// maintenance we are allowed to perform on this VM and when. Schedule that is
	// applied to disks covered by this policy.
	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
	// SnapshotProperties: Properties with which snapshots are created such as
	// labels, encryption keys.
	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RetentionPolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicySnapshotSchedulePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for retention of
// scheduled snapshots.
type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be kept.
	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
	// Possible values:
	//   "DO_NOT_RETROACTIVELY_APPLY"
	//   "RETROACTIVELY_APPLY"
	//   "UNSPECIFIED_ON_POLICY_SWITCH"
	OnPolicySwitch string `json:"onPolicySwitch,omitempty"`
	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled snapshots
	// when the source disk is deleted.
	//
	// Possible values:
	//   "APPLY_RETENTION_POLICY"
	//   "KEEP_AUTO_SNAPSHOTS"
	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxRetentionDays") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks where the
// schedueled operations are performed.
type ResourcePolicySnapshotSchedulePolicySchedule struct {
	DailySchedule  *ResourcePolicyDailyCycle  `json:"dailySchedule,omitempty"`
	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DailySchedule") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified snapshot
// properties for scheduled snapshots created by this policy.
type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
	// ChainName: Chain name that the snapshot is created in.
	ChainName string `json:"chainName,omitempty"`
	// GuestFlush: Indication to perform a 'guest aware' snapshot.
	GuestFlush bool `json:"guestFlush,omitempty"`
	// Labels: Labels to apply to scheduled snapshots. These can be later modified
	// by the setLabels method. Label values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// StorageLocations: Cloud Storage bucket storage location of the auto snapshot
	// (regional or multi-regional).
	StorageLocations []string `json:"storageLocations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChainName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChainName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePolicyVmMaintenancePolicy struct {
	ConcurrencyControlGroup *ResourcePolicyVmMaintenancePolicyConcurrencyControl `json:"concurrencyControlGroup,omitempty"`
	// MaintenanceWindow: Maintenance windows that are applied to VMs covered by
	// this policy.
	MaintenanceWindow *ResourcePolicyVmMaintenancePolicyMaintenanceWindow `json:"maintenanceWindow,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConcurrencyControlGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConcurrencyControlGroup") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyVmMaintenancePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyVmMaintenancePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyVmMaintenancePolicyConcurrencyControl: A concurrency control
// configuration. Defines a group config that, when attached to an instance,
// recognizes that instance as part of a group of instances where only up the
// concurrency_limit of instances in that group can undergo simultaneous
// maintenance. For more information: go/concurrency-control-design-doc
type ResourcePolicyVmMaintenancePolicyConcurrencyControl struct {
	ConcurrencyLimit int64 `json:"concurrencyLimit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConcurrencyLimit") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConcurrencyLimit") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyVmMaintenancePolicyConcurrencyControl) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyVmMaintenancePolicyConcurrencyControl
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyVmMaintenancePolicyMaintenanceWindow: A maintenance window for
// VMs. When set, we restrict our maintenance operations to this window.
type ResourcePolicyVmMaintenancePolicyMaintenanceWindow struct {
	DailyMaintenanceWindow *ResourcePolicyDailyCycle `json:"dailyMaintenanceWindow,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DailyMaintenanceWindow") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DailyMaintenanceWindow") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyVmMaintenancePolicyMaintenanceWindow) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyVmMaintenancePolicyMaintenanceWindow
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyWeeklyCycle: Time window specified for weekly operations.
type ResourcePolicyWeeklyCycle struct {
	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyWeeklyCycle
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourcePolicyWeeklyCycleDayOfWeek struct {
	// Day: Defines a schedule that runs on specific days of the week. Specify one
	// or more days. The following options are available: MONDAY, TUESDAY,
	// WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
	//
	// Possible values:
	//   "FRIDAY"
	//   "INVALID"
	//   "MONDAY"
	//   "SATURDAY"
	//   "SUNDAY"
	//   "THURSDAY"
	//   "TUESDAY"
	//   "WEDNESDAY"
	Day string `json:"day,omitempty"`
	// Duration: [Output only] Duration of the time window, automatically chosen to
	// be smallest possible in the given scenario.
	Duration string `json:"duration,omitempty"`
	// StartTime: Time within the window to start the operations. It must be in
	// format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Day") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Day") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourcePolicyWorkloadPolicy: Represents the workload policy.
type ResourcePolicyWorkloadPolicy struct {
	// Possible values:
	//   "HIGH_AVAILABILITY" - VMs will be provisioned in such a way which provides
	// high availability.
	//   "HIGH_THROUGHPUT" - VMs will be provisioned in such a way which provides
	// high throughput.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourcePolicyWorkloadPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ResourcePolicyWorkloadPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourceStatus: Contains output only fields. Use this sub-message for actual
// values set on Instance attributes as compared to the value requested by the
// user (intent) in their instance CRUD calls.
type ResourceStatus struct {
	// LastInstanceTerminationDetails: [Output Only] Contains last termination
	// details why the instance was terminated.
	LastInstanceTerminationDetails *ResourceStatusLastInstanceTerminationDetails `json:"lastInstanceTerminationDetails,omitempty"`
	// PhysicalHost: [Output Only] An opaque ID of the host on which the VM is
	// running.
	PhysicalHost string                    `json:"physicalHost,omitempty"`
	Scheduling   *ResourceStatusScheduling `json:"scheduling,omitempty"`
	// ServiceIntegrationStatuses: [Output Only] Represents the status of the
	// service integration specs defined by the user in
	// instance.serviceIntegrationSpecs.
	ServiceIntegrationStatuses map[string]ResourceStatusServiceIntegrationStatus `json:"serviceIntegrationStatuses,omitempty"`
	// ShutdownDetails: [Output Only] Details about stopping state of instance
	ShutdownDetails     *ResourceStatusShutdownDetails `json:"shutdownDetails,omitempty"`
	UpcomingMaintenance *UpcomingMaintenance           `json:"upcomingMaintenance,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "LastInstanceTerminationDetails") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LastInstanceTerminationDetails")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourceStatusLastInstanceTerminationDetails struct {
	// TerminationReason: Reason for termination
	//
	// Possible values:
	//   "BAD_BILLING_ACCOUNT" - Terminated due to bad billing
	//   "CLOUD_ABUSE_DETECTED" - Terminated by Cloud Abuse team
	//   "DISK_ERROR" - Terminated due to disk errors
	//   "FREE_TRIAL_EXPIRED" - Terminated due to free trial expired
	//   "INSTANCE_UPDATE_REQUIRED_RESTART" - Instance.update initiated which
	// required RESTART
	//   "INTERNAL_ERROR" - Terminated due to internal error
	//   "KMS_REJECTION" - Terminated due to Key Management Service (KMS) key
	// failure.
	//   "MANAGED_INSTANCE_GROUP" - Terminated by managed instance group
	//   "OS_TERMINATED" - Terminated from the OS level
	//   "PREEMPTED" - Terminated due to preemption
	//   "SCHEDULED_STOP" - Terminated due to scheduled stop
	//   "SHUTDOWN_DUE_TO_HOST_ERROR" - Terminated due to host error
	//   "SHUTDOWN_DUE_TO_MAINTENANCE" - Terminated due to maintenance
	//   "USER_TERMINATED" - Terminated by user
	TerminationReason string `json:"terminationReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TerminationReason") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TerminationReason") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceStatusLastInstanceTerminationDetails) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatusLastInstanceTerminationDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ResourceStatusScheduling struct {
	// AvailabilityDomain: Specifies the availability domain to place the instance
	// in. The value must be a number between 1 and the number of availability
	// domains specified in the spread placement policy attached to the instance.
	AvailabilityDomain int64 `json:"availabilityDomain,omitempty"`
	// TerminationTimestamp: Time in future when the instance will be terminated in
	// RFC3339 text format.
	TerminationTimestamp string `json:"terminationTimestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailabilityDomain") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailabilityDomain") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceStatusScheduling) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatusScheduling
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourceStatusServiceIntegrationStatus: Represents the status of integration
// between instance and another service. See go/gce-backupdr-design for more
// details.
type ResourceStatusServiceIntegrationStatus struct {
	BackupDr *ResourceStatusServiceIntegrationStatusBackupDRStatus `json:"backupDr,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackupDr") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackupDr") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceStatusServiceIntegrationStatus) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatusServiceIntegrationStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourceStatusServiceIntegrationStatusBackupDRStatus: Message defining
// compute perspective of the result of integration with Backup and DR. FAILED
// status indicates that the operation specified did not complete correctly and
// should be retried with the same value.
type ResourceStatusServiceIntegrationStatusBackupDRStatus struct {
	// IntegrationDetails: The PlanReference object created by Backup and DR to
	// maintain the actual status of backups. May still be present if removing the
	// backup plan fails.
	IntegrationDetails string `json:"integrationDetails,omitempty"`
	// State: Enum representing the registration state of a Backup and DR backup
	// plan for the instance.
	//
	// Possible values:
	//   "ACTIVE" - The operation was successful and Backup and DR is trying to
	// protect the instance with the specified backup plan. Check resource pointed
	// to in integration_details for more information.
	//   "CREATING" - GCE is trying to attach the backup plan to the instance.
	//   "DELETING" - GCE is trying to remove the backup plan from the instance.
	//   "FAILED" - The operation failed, specifying the same value in
	// BackupDrSpec.plan again (including null for delete) will attempt to repair
	// the integration
	//   "STATE_UNSPECIFIED" - Default value, should not be found on instances.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IntegrationDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IntegrationDetails") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceStatusServiceIntegrationStatusBackupDRStatus) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatusServiceIntegrationStatusBackupDRStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ResourceStatusShutdownDetails: Specifies if the instance is in
// `SHUTTING_DOWN` state or there is a instance stopping scheduled.
type ResourceStatusShutdownDetails struct {
	// MaxDuration: Duration for graceful shutdown. Only applicable when
	// `stop_state=SHUTTING_DOWN`.
	MaxDuration *Duration `json:"maxDuration,omitempty"`
	// RequestTimestamp: Past timestamp indicating the beginning of current
	// `stopState` in RFC3339 text format.
	RequestTimestamp string `json:"requestTimestamp,omitempty"`
	// StopState: Current stopping state of the instance.
	//
	// Possible values:
	//   "PENDING_STOP" - The instance is gracefully shutting down.
	//   "SHUTTING_DOWN" - Deprecating, please use PENDING_STOP. The instance is
	// gracefully shutting down.
	//   "STOPPING" - The instance is stopping.
	StopState string `json:"stopState,omitempty"`
	// TargetState: Target instance state.
	//
	// Possible values:
	//   "DELETED" - The instance will be deleted.
	//   "STOPPED" - The instance will be stopped.
	TargetState string `json:"targetState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxDuration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceStatusShutdownDetails) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatusShutdownDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RolloutPolicy: A rollout policy configuration.
type RolloutPolicy struct {
	// DefaultRolloutTime: An optional RFC3339 timestamp on or after which the
	// update is considered rolled out to any zone that is not explicitly stated.
	DefaultRolloutTime string `json:"defaultRolloutTime,omitempty"`
	// LocationRolloutPolicies: Location based rollout policies to apply to the
	// resource. Currently only zone names are supported and must be represented as
	// valid URLs, like: zones/us-central1-a. The value expects an RFC3339
	// timestamp on or after which the update is considered rolled out to the
	// specified location.
	LocationRolloutPolicies map[string]string `json:"locationRolloutPolicies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultRolloutTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultRolloutTime") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RolloutPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Route: Represents a Route resource. A route defines a path from VM instances
// in the VPC network to a specific destination. This destination can be inside
// or outside the VPC network. For more information, read the Routes overview.
type Route struct {
	// AllowConflictingSubnetworks: Whether this route can conflict with existing
	// subnetworks. Setting this to true allows this route to conflict with
	// subnetworks that have already been configured on the corresponding network.
	AllowConflictingSubnetworks bool `json:"allowConflictingSubnetworks,omitempty"`
	// AsPaths: [Output Only] AS path.
	AsPaths []*RouteAsPath `json:"asPaths,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this field
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DestRange: The destination range of outgoing packets that this route applies
	// to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g.
	// 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6
	// range will be displayed using RFC 5952 compressed format.
	DestRange string `json:"destRange,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IlbRouteBehaviorOnUnhealthy: ILB route behavior when ILB is deemed unhealthy
	// based on user specified threshold on the Backend Service of the internal
	// load balancing.
	//
	// Possible values:
	//   "DO_NOT_WITHDRAW_ROUTE_IF_ILB_UNHEALTHY" - Do not Withdraw route if the
	// ILB is deemed unhealthy based on user specified threshold on the Backend
	// Service of the ILB. This is default behavior for ilb as next hop route
	// without IlbRouteBehavior.
	//   "WITHDRAW_ROUTE_IF_ILB_UNHEALTHY" - Withdraw route if the ILB is deemed
	// unhealthy based on user specified threshold on the Backend Service of the
	// internal load balancing. Currently the withdrawn route will be reinserted
	// when the backends are restored to healthy. If you wish to prevent the
	// re-insertion of the route and trigger the fall-back at your discretion,
	// override the health result from the backends to signal as healthy only when
	// ready to fallback.
	IlbRouteBehaviorOnUnhealthy string `json:"ilbRouteBehaviorOnUnhealthy,omitempty"`
	// Kind: [Output Only] Type of this resource. Always compute#routes for Route
	// resources.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a
	// lowercase letter, and all following characters (except for the last
	// character) must be a dash, lowercase letter, or digit. The last character
	// must be a lowercase letter or digit.
	Name string `json:"name,omitempty"`
	// Network: Fully-qualified URL of the network that this route applies to.
	Network string `json:"network,omitempty"`
	// NextHopGateway: The URL to a gateway that should handle matching packets.
	// You can only specify the internet gateway using a full or partial valid URL:
	// projects/ project/global/gateways/default-internet-gateway
	NextHopGateway string `json:"nextHopGateway,omitempty"`
	// NextHopHub: [Output Only] The full resource name of the Network Connectivity
	// Center hub that will handle matching packets.
	NextHopHub string `json:"nextHopHub,omitempty"`
	// NextHopIlb: The URL to a forwarding rule of type
	// loadBalancingScheme=INTERNAL that should handle matching packets or the IP
	// address of the forwarding Rule. For example, the following are all valid
	// URLs: -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region
	// /forwardingRules/forwardingRule -
	// regions/region/forwardingRules/forwardingRule If an IP address is provided,
	// must specify an IPv4 address in dot-decimal notation or an IPv6 address in
	// RFC 4291 format. For example, the following are all valid IP addresses: -
	// 10.128.0.56 - 2001:db8::2d9:51:0:0 - 2001:db8:0:0:2d9:51:0:0 IPv6 addresses
	// will be displayed using RFC 5952 compressed format (e.g.
	// 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.
	NextHopIlb string `json:"nextHopIlb,omitempty"`
	// NextHopInstance: The URL to an instance that should handle matching packets.
	// You can specify this as a full or partial URL. For example:
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
	NextHopInstance string `json:"nextHopInstance,omitempty"`
	// NextHopInterRegionCost: [Output only] Internal fixed region-to-region cost
	// that Google Cloud calculates based on factors such as network performance,
	// distance, and available bandwidth between regions.
	NextHopInterRegionCost int64 `json:"nextHopInterRegionCost,omitempty"`
	// NextHopInterconnectAttachment: [Output Only] The URL to an
	// InterconnectAttachment which is the next hop for the route. This field will
	// only be populated for the dynamic routes generated by Cloud Router with a
	// linked interconnectAttachment.
	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
	// NextHopIp: The network IP address of an instance that should handle matching
	// packets. Both IPv6 address and IPv4 addresses are supported. Must specify an
	// IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in
	// RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6
	// addresses will be displayed using RFC 5952 compressed format (e.g.
	// 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.
	NextHopIp string `json:"nextHopIp,omitempty"`
	// NextHopMed: [Output Only] Multi-Exit Discriminator, a BGP route metric that
	// indicates the desirability of a particular route in a network.
	NextHopMed int64 `json:"nextHopMed,omitempty"`
	// NextHopNetwork: The URL of the local network if it should handle matching
	// packets.
	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
	// NextHopOrigin: [Output Only] Indicates the origin of the route. Can be IGP
	// (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
	//
	// Possible values:
	//   "EGP"
	//   "IGP"
	//   "INCOMPLETE"
	NextHopOrigin string `json:"nextHopOrigin,omitempty"`
	// NextHopPeering: [Output Only] The network peering name that should handle
	// matching packets, which should conform to RFC1035.
	NextHopPeering string `json:"nextHopPeering,omitempty"`
	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
	// packets.
	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
	// Priority: The priority of this route. Priority is used to break ties in
	// cases where there is more than one matching route of equal prefix length. In
	// cases where multiple routes have equal prefix length, the one with the
	// lowest-numbered priority value wins. The default value is `1000`. The
	// priority value must be from `0` to `65535`, inclusive.
	Priority int64 `json:"priority,omitempty"`
	// RouteStatus: [Output only] The status of the route.
	//
	// Possible values:
	//   "ACTIVE" - This route is processed and active.
	//   "DROPPED" - The route is dropped due to the VPC exceeding the dynamic
	// route limit. For dynamic route limit, please refer to the Learned route
	// example
	//   "INACTIVE" - This route is processed but inactive due to failure from the
	// backend. The backend may have rejected the route
	//   "PENDING" - This route is being processed internally. The status will
	// change once processed.
	RouteStatus string `json:"routeStatus,omitempty"`
	// RouteType: [Output Only] The type of this route, which can be one of the
	// following values: - 'TRANSIT' for a transit route that this router learned
	// from another Cloud Router and will readvertise to one of its BGP peers -
	// 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned
	// from a BGP peer of this router - 'STATIC' for a static route
	//
	// Possible values:
	//   "BGP"
	//   "STATIC"
	//   "SUBNET"
	//   "TRANSIT"
	RouteType string `json:"routeType,omitempty"`
	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
	// resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Tags: A list of instance tags to which this route applies.
	Tags []string `json:"tags,omitempty"`
	// Warnings: [Output Only] If potential misconfigurations are detected for this
	// route, this field will be populated with warning messages.
	Warnings []*RouteWarnings `json:"warnings,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g.
	// "AllowConflictingSubnetworks") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowConflictingSubnetworks") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Route) MarshalJSON() ([]byte, error) {
	type NoMethod Route
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouteWarnings struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RouteWarningsData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouteWarnings) MarshalJSON() ([]byte, error) {
	type NoMethod RouteWarnings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouteWarningsData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouteWarningsData) MarshalJSON() ([]byte, error) {
	type NoMethod RouteWarningsData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouteAsPath struct {
	// AsLists: [Output Only] The AS numbers of the AS Path.
	AsLists []int64 `json:"asLists,omitempty"`
	// PathSegmentType: [Output Only] The type of the AS Path, which can be one of
	// the following values: - 'AS_SET': unordered set of autonomous systems that
	// the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous
	// systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of
	// Member Autonomous Systems in the local confederation that the route has
	// traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in
	// the local confederation that the route has traversed
	//
	// Possible values:
	//   "AS_CONFED_SEQUENCE"
	//   "AS_CONFED_SET"
	//   "AS_SEQUENCE"
	//   "AS_SET"
	PathSegmentType string `json:"pathSegmentType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AsLists") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AsLists") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouteAsPath) MarshalJSON() ([]byte, error) {
	type NoMethod RouteAsPath
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouteList: Contains a list of Route resources.
type RouteList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Route resources.
	Items []*Route `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RouteListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouteList) MarshalJSON() ([]byte, error) {
	type NoMethod RouteList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouteListWarning: [Output Only] Informational warning message.
type RouteListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RouteListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouteListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RouteListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouteListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouteListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RouteListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutePolicy struct {
	// Fingerprint: A fingerprint for the Route Policy being applied to this
	// Router, which is essentially a hash of the Route Policy used for optimistic
	// locking. The fingerprint is initially generated by Compute Engine and
	// changes after every request to modify or update Route Policy. You must
	// always provide an up-to-date fingerprint hash in order to update or change
	// labels. To see the latest fingerprint, make a getRoutePolicy() request to
	// retrieve a Route Policy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Name: Route Policy name, which must be a resource ID segment and unique
	// within all the router's Route Policies. Name should conform to RFC1035.
	Name string `json:"name,omitempty"`
	// Terms: List of terms (the order in the list is not important, they are
	// evaluated in order of priority). Order of policies is not retained and might
	// change when getting policy later.
	Terms []*RoutePolicyPolicyTerm `json:"terms,omitempty"`
	// Possible values:
	//   "ROUTE_POLICY_TYPE_EXPORT" - The Route Policy is an Export Policy.
	//   "ROUTE_POLICY_TYPE_IMPORT" - The Route Policy is an Import Policy.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod RoutePolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutePolicyPolicyTerm struct {
	// Actions: CEL expressions to evaluate to modify a route when this term
	// matches.
	Actions []*Expr `json:"actions,omitempty"`
	// Match: CEL expression evaluated against a route to determine if this term
	// applies. When not set, the term applies to all routes.
	Match *Expr `json:"match,omitempty"`
	// Priority: The evaluation priority for this term, which must be between 0
	// (inclusive) and 2^31 (exclusive), and unique within the list.
	Priority int64 `json:"priority,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Actions") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Actions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutePolicyPolicyTerm) MarshalJSON() ([]byte, error) {
	type NoMethod RoutePolicyPolicyTerm
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Router: Represents a Cloud Router resource. For more information about Cloud
// Router, read the Cloud Router overview.
type Router struct {
	// Bgp: BGP information specific to this router.
	Bgp *RouterBgp `json:"bgp,omitempty"`
	// BgpPeers: BGP information that must be configured into the routing stack to
	// establish BGP peering. This information must specify the peer ASN and either
	// the interface name, IP address, or peer IP address. Please refer to RFC4273.
	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// EncryptedInterconnectRouter: Indicates if a router is dedicated for use with
	// encrypted VLAN attachments (interconnectAttachments).
	EncryptedInterconnectRouter bool `json:"encryptedInterconnectRouter,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Interfaces: Router interfaces. To create a BGP peer that uses a router
	// interface, the interface must have one of the following fields specified: -
	// linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a
	// router interface without any of these fields specified. However, you cannot
	// create a BGP peer that uses that interface.
	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#router for routers.
	Kind string `json:"kind,omitempty"`
	// Md5AuthenticationKeys: Keys used for MD5 authentication.
	Md5AuthenticationKeys []*RouterMd5AuthenticationKey `json:"md5AuthenticationKeys,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Nats: A list of NAT services created in this router.
	Nats []*RouterNat `json:"nats,omitempty"`
	// Network: URI of the network to which this router belongs.
	Network string `json:"network,omitempty"`
	// Region: [Output Only] URI of the region where the router resides. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Bgp") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Bgp") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Router) MarshalJSON() ([]byte, error) {
	type NoMethod Router
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterAdvertisedIpRange: Description-tagged IP ranges for the router to
// advertise.
type RouterAdvertisedIpRange struct {
	// Description: User-specified description for the IP range.
	Description string `json:"description,omitempty"`
	// Range: The IP range to advertise. The value must be a CIDR-formatted string.
	Range string `json:"range,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
	type NoMethod RouterAdvertisedIpRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterAggregatedList: Contains a list of routers.
type RouterAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Router resources.
	Items map[string]RoutersScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod RouterAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterAggregatedListWarning: [Output Only] Informational warning message.
type RouterAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RouterAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RouterAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterBgp struct {
	// AdvertiseMode: User-specified flag to indicate which mode to use for
	// advertisement. The options are DEFAULT or CUSTOM.
	//
	// Possible values:
	//   "CUSTOM"
	//   "DEFAULT"
	AdvertiseMode string `json:"advertiseMode,omitempty"`
	// AdvertisedGroups: User-specified list of prefix groups to advertise in
	// custom mode. This field can only be populated if advertise_mode is CUSTOM
	// and is advertised to all peers of the router. These groups will be
	// advertised in addition to any specified prefixes. Leave this field blank to
	// advertise no custom groups.
	//
	// Possible values:
	//   "ALL_PEER_VPC_SUBNETS" - Advertise peer subnets of the router's VPC.
	//   "ALL_SUBNETS" - Advertise all available subnets (including peer VPC
	// subnets).
	//   "ALL_VPC_SUBNETS" - Advertise the router's own VPC subnets.
	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
	// AdvertisedIpRanges: User-specified list of individual IP ranges to advertise
	// in custom mode. This field can only be populated if advertise_mode is CUSTOM
	// and is advertised to all peers of the router. These IP ranges will be
	// advertised in addition to any specified groups. Leave this field blank to
	// advertise no custom IP ranges.
	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996 private
	// ASN, either 16-bit or 32-bit. The value will be fixed for this router
	// resource. All VPN tunnels that link to this router will have the same local
	// ASN.
	Asn int64 `json:"asn,omitempty"`
	// IdentifierRange: Explicitly specifies a range of valid BGP Identifiers for
	// this Router. It is provided as a link-local IPv4 range (from
	// 169.254.0.0/16), of size at least /30, even if the BGP sessions are over
	// IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors
	// commonly call this "router ID".
	IdentifierRange string `json:"identifierRange,omitempty"`
	// KeepaliveInterval: The interval in seconds between BGP keepalive messages
	// that are sent to the peer. Hold time is three times the interval at which
	// keepalive messages are sent, and the hold time is the maximum number of
	// seconds allowed to elapse between successive keepalive messages that BGP
	// receives from a peer. BGP will use the smaller of either the local hold time
	// value or the peer's hold time value as the hold time for the BGP connection
	// between the two peers. If set, this value must be between 20 and 60. The
	// default is 20.
	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertiseMode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterBgp) MarshalJSON() ([]byte, error) {
	type NoMethod RouterBgp
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterBgpPeer struct {
	// AdvertiseMode: User-specified flag to indicate which mode to use for
	// advertisement.
	//
	// Possible values:
	//   "CUSTOM"
	//   "DEFAULT"
	AdvertiseMode string `json:"advertiseMode,omitempty"`
	// AdvertisedGroups: User-specified list of prefix groups to advertise in
	// custom mode, which currently supports the following option: - ALL_SUBNETS:
	// Advertises all of the router's own VPC subnets. This excludes any routes
	// learned for subnets that use VPC Network Peering. Note that this field can
	// only be populated if advertise_mode is CUSTOM and overrides the list defined
	// for the router (in the "bgp" message). These groups are advertised in
	// addition to any specified prefixes. Leave this field blank to advertise no
	// custom groups.
	//
	// Possible values:
	//   "ALL_PEER_VPC_SUBNETS" - Advertise peer subnets of the router's VPC.
	//   "ALL_SUBNETS" - Advertise all available subnets (including peer VPC
	// subnets).
	//   "ALL_VPC_SUBNETS" - Advertise the router's own VPC subnets.
	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
	// AdvertisedIpRanges: User-specified list of individual IP ranges to advertise
	// in custom mode. This field can only be populated if advertise_mode is CUSTOM
	// and overrides the list defined for the router (in the "bgp" message). These
	// IP ranges are advertised in addition to any specified groups. Leave this
	// field blank to advertise no custom IP ranges.
	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
	// AdvertisedRoutePriority: The priority of routes advertised to this BGP peer.
	// Where there is more than one matching route of maximum length, the routes
	// with the lowest priority value win.
	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
	// Bfd: BFD configuration for the BGP peering.
	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
	// CustomLearnedIpRanges: A list of user-defined custom learned route IP
	// address ranges for a BGP session.
	CustomLearnedIpRanges []*RouterBgpPeerCustomLearnedIpRange `json:"customLearnedIpRanges,omitempty"`
	// CustomLearnedRoutePriority: The user-defined custom learned route priority
	// for a BGP session. This value is applied to all custom learned route ranges
	// for the session. You can choose a value from `0` to `65335`. If you don't
	// provide a value, Google Cloud assigns a priority of `100` to the ranges.
	CustomLearnedRoutePriority int64 `json:"customLearnedRoutePriority,omitempty"`
	// Enable: The status of the BGP peer connection. If set to FALSE, any active
	// session with the peer is terminated and all associated routing information
	// is removed. If set to TRUE, the peer connection can be established with
	// routing information. The default is TRUE.
	//
	// Possible values:
	//   "FALSE"
	//   "TRUE"
	Enable string `json:"enable,omitempty"`
	// EnableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if
	// the peerIpAddress is version 4.
	EnableIpv4 bool `json:"enableIpv4,omitempty"`
	// EnableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if
	// the peerIpAddress is version 6.
	EnableIpv6 bool `json:"enableIpv6,omitempty"`
	// ExportPolicies: List of export policies applied to this peer, in the order
	// they must be evaluated. The name must correspond to an existing policy that
	// has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are currently
	// available in preview. Please use Beta API to use Route Policies.
	ExportPolicies []string `json:"exportPolicies,omitempty"`
	// ImportPolicies: List of import policies applied to this peer, in the order
	// they must be evaluated. The name must correspond to an existing policy that
	// has ROUTE_POLICY_TYPE_IMPORT type. Note that Route Policies are currently
	// available in preview. Please use Beta API to use Route Policies.
	ImportPolicies []string `json:"importPolicies,omitempty"`
	// InterfaceName: Name of the interface the BGP peer is associated with.
	InterfaceName string `json:"interfaceName,omitempty"`
	// IpAddress: IP address of the interface inside Google Cloud Platform.
	IpAddress string `json:"ipAddress,omitempty"`
	// Ipv4NexthopAddress: IPv4 address of the interface inside Google Cloud
	// Platform.
	Ipv4NexthopAddress string `json:"ipv4NexthopAddress,omitempty"`
	// Ipv6NexthopAddress: IPv6 address of the interface inside Google Cloud
	// Platform.
	Ipv6NexthopAddress string `json:"ipv6NexthopAddress,omitempty"`
	// ManagementType: [Output Only] The resource that configures and manages this
	// BGP peer. - MANAGED_BY_USER is the default value and can be managed by you
	// or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and
	// managed by Cloud Interconnect, specifically by an InterconnectAttachment of
	// type PARTNER. Google automatically creates, updates, and deletes this type
	// of BGP peer when the PARTNER InterconnectAttachment is created, updated, or
	// deleted.
	//
	// Possible values:
	//   "MANAGED_BY_ATTACHMENT" - The BGP peer is automatically created for
	// PARTNER type InterconnectAttachment; Google will automatically create/delete
	// this BGP peer when the PARTNER InterconnectAttachment is created/deleted,
	// and Google will update the ipAddress and peerIpAddress when the PARTNER
	// InterconnectAttachment is provisioned. This type of BGP peer cannot be
	// created or deleted, but can be modified for all fields except for name,
	// ipAddress and peerIpAddress.
	//   "MANAGED_BY_USER" - Default value, the BGP peer is manually created and
	// managed by user.
	ManagementType string `json:"managementType,omitempty"`
	// Md5AuthenticationKeyName: Present if MD5 authentication is enabled for the
	// peering. Must be the name of one of the entries in the
	// Router.md5_authentication_keys. The field must comply with RFC1035.
	Md5AuthenticationKeyName string `json:"md5AuthenticationKeyName,omitempty"`
	// Name: Name of this BGP peer. The name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface may use
	// a different value.
	PeerAsn int64 `json:"peerAsn,omitempty"`
	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
	// Platform.
	PeerIpAddress string `json:"peerIpAddress,omitempty"`
	// PeerIpv4NexthopAddress: IPv4 address of the BGP interface outside Google
	// Cloud Platform.
	PeerIpv4NexthopAddress string `json:"peerIpv4NexthopAddress,omitempty"`
	// PeerIpv6NexthopAddress: IPv6 address of the BGP interface outside Google
	// Cloud Platform.
	PeerIpv6NexthopAddress string `json:"peerIpv6NexthopAddress,omitempty"`
	// RouterApplianceInstance: URI of the VM instance that is used as third-party
	// router appliances such as Next Gen Firewalls, Virtual Routers, or Router
	// Appliances. The VM instance must be located in zones contained in the same
	// region as this Cloud Router. The VM instance is the peer side of the BGP
	// session.
	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertiseMode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterBgpPeer) MarshalJSON() ([]byte, error) {
	type NoMethod RouterBgpPeer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterBgpPeerBfd struct {
	// MinReceiveInterval: The minimum interval, in milliseconds, between BFD
	// control packets received from the peer router. The actual value is
	// negotiated between the two routers and is equal to the greater of this value
	// and the transmit interval of the other router. If set, this value must be
	// between 1000 and 30000. The default is 1000.
	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
	// MinTransmitInterval: The minimum interval, in milliseconds, between BFD
	// control packets transmitted to the peer router. The actual value is
	// negotiated between the two routers and is equal to the greater of this value
	// and the corresponding receive interval of the other router. If set, this
	// value must be between 1000 and 30000. The default is 1000.
	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
	// Mode: The BFD session initialization mode for this BGP peer. If set to
	// ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If
	// set to PASSIVE, the Cloud Router will wait for the peer router to initiate
	// the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for
	// this BGP peer. The default is PASSIVE.
	//
	// Possible values:
	//   "ACTIVE"
	//   "DISABLED"
	//   "PASSIVE"
	Mode string `json:"mode,omitempty"`
	// Multiplier: The number of consecutive BFD packets that must be missed before
	// BFD declares that a peer is unavailable. If set, the value must be a value
	// between 5 and 16. The default is 5.
	Multiplier int64 `json:"multiplier,omitempty"`
	// PacketMode: The BFD packet mode for this BGP peer. If set to
	// CONTROL_AND_ECHO, BFD echo mode is enabled for this BGP peer. In this mode,
	// if the peer router also has BFD echo mode enabled, BFD echo packets will be
	// sent to the other router. If the peer router does not have BFD echo mode
	// enabled, only control packets will be sent. If set to CONTROL_ONLY, BFD echo
	// mode is disabled for this BGP peer. If this router and the peer router have
	// a multihop connection, this should be set to CONTROL_ONLY as BFD echo mode
	// is only supported on singlehop connections. The default is CONTROL_AND_ECHO.
	//
	// Possible values:
	//   "CONTROL_AND_ECHO"
	//   "CONTROL_ONLY"
	PacketMode string `json:"packetMode,omitempty"`
	// SessionInitializationMode: The BFD session initialization mode for this BGP
	// peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for
	// this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer
	// router to initiate the BFD session for this BGP peer. If set to DISABLED,
	// BFD is disabled for this BGP peer. The default is DISABLED.
	//
	// Possible values:
	//   "ACTIVE"
	//   "DISABLED"
	//   "PASSIVE"
	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
	// SlowTimerInterval: The minimum interval, in milliseconds, between BFD
	// control packets transmitted to and received from the peer router when BFD
	// echo mode is enabled on both routers. The actual transmit and receive
	// intervals are negotiated between the two routers and are equal to the
	// greater of this value and the corresponding interval on the other router. If
	// set, this value must be between 1000 and 30000. The default is 5000.
	SlowTimerInterval int64 `json:"slowTimerInterval,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MinReceiveInterval") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
	type NoMethod RouterBgpPeerBfd
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterBgpPeerCustomLearnedIpRange struct {
	// Range: The custom learned route IP address range. Must be a valid
	// CIDR-formatted prefix. If an IP address is provided without a subnet mask,
	// it is interpreted as, for IPv4, a `/32` singular IP address range, and, for
	// IPv6, `/128`.
	Range string `json:"range,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Range") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Range") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterBgpPeerCustomLearnedIpRange) MarshalJSON() ([]byte, error) {
	type NoMethod RouterBgpPeerCustomLearnedIpRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterInterface struct {
	// IpRange: IP address and range of the interface. - For Internet Protocol
	// version 4 (IPv4), the IP range must be in the RFC3927 link-local IP address
	// space. The value must be a CIDR-formatted string, for example,
	// 169.254.0.1/30. Note: Do not truncate the IP address, as it represents the
	// IP address of the interface. - For Internet Protocol version 6 (IPv6), the
	// value must be a unique local address (ULA) range from fdff:1::/64 with a
	// mask length of 126 or less. This value should be a CIDR-formatted string,
	// for example, fc00:0:1:1::1/112. Within the router's VPC, this IPv6 prefix
	// will be reserved exclusively for this connection and cannot be used for any
	// other purpose.
	IpRange string `json:"ipRange,omitempty"`
	// IpVersion: IP version of this interface.
	//
	// Possible values:
	//   "IPV4"
	//   "IPV6"
	IpVersion string `json:"ipVersion,omitempty"`
	// LinkedInterconnectAttachment: URI of the linked Interconnect attachment. It
	// must be in the same region as the router. Each interface can have one linked
	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
	// subnetwork.
	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the same
	// region as the router. Each interface can have one linked resource, which can
	// be a VPN tunnel, an Interconnect attachment, or a subnetwork.
	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
	// ManagementType: [Output Only] The resource that configures and manages this
	// interface. - MANAGED_BY_USER is the default value and can be managed
	// directly by users. - MANAGED_BY_ATTACHMENT is an interface that is
	// configured and managed by Cloud Interconnect, specifically, by an
	// InterconnectAttachment of type PARTNER. Google automatically creates,
	// updates, and deletes this type of interface when the PARTNER
	// InterconnectAttachment is created, updated, or deleted.
	//
	// Possible values:
	//   "MANAGED_BY_ATTACHMENT" - The interface is automatically created for
	// PARTNER type InterconnectAttachment, Google will automatically
	// create/update/delete this interface when the PARTNER InterconnectAttachment
	// is created/provisioned/deleted. This type of interface cannot be manually
	// managed by user.
	//   "MANAGED_BY_USER" - Default value, the interface is manually created and
	// managed by user.
	ManagementType string `json:"managementType,omitempty"`
	// Name: Name of this interface entry. The name must be 1-63 characters long,
	// and comply with RFC1035. Specifically, the name must be 1-63 characters long
	// and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
	// the first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// PrivateIpAddress: The regional private internal IP address that is used to
	// establish BGP sessions to a VM instance acting as a third-party Router
	// Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM.
	PrivateIpAddress string `json:"privateIpAddress,omitempty"`
	// RedundantInterface: Name of the interface that will be redundant with the
	// current interface you are creating. The redundantInterface must belong to
	// the same Cloud Router as the interface here. To establish the BGP session to
	// a Router Appliance VM, you must create two BGP peers. The two BGP peers must
	// be attached to two separate interfaces that are redundant with each other.
	// The redundant_interface must be 1-63 characters long, and comply with
	// RFC1035. Specifically, the redundant_interface must be 1-63 characters long
	// and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
	// the first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	RedundantInterface string `json:"redundantInterface,omitempty"`
	// Subnetwork: The URI of the subnetwork resource that this interface belongs
	// to, which must be in the same region as the Cloud Router. When you establish
	// a BGP session to a VM instance using this interface, the VM instance must
	// belong to the same subnetwork as the subnetwork specified here.
	Subnetwork string `json:"subnetwork,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpRange") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterInterface) MarshalJSON() ([]byte, error) {
	type NoMethod RouterInterface
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterList: Contains a list of Router resources.
type RouterList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Router resources.
	Items []*Router `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#router for routers.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RouterListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterList) MarshalJSON() ([]byte, error) {
	type NoMethod RouterList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterListWarning: [Output Only] Informational warning message.
type RouterListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RouterListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RouterListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RouterListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterMd5AuthenticationKey struct {
	// Key: [Input only] Value of the key. For patch and update calls, it can be
	// skipped to copy the value from the previous configuration. This is allowed
	// if the key with the same name existed before the operation. Maximum length
	// is 80 characters. Can only contain printable ASCII characters.
	Key string `json:"key,omitempty"`
	// Name: Name used to identify the key. Must be unique within a router. Must be
	// referenced by exactly one bgpPeer. Must comply with RFC1035.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterMd5AuthenticationKey) MarshalJSON() ([]byte, error) {
	type NoMethod RouterMd5AuthenticationKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterNat: Represents a Nat resource. It enables the VMs within the
// specified subnetworks to access Internet without external IP addresses. It
// specifies a list of subnetworks (and the ranges within) that want to use
// NAT. Customers can also provide the external IPs that would be used for NAT.
// GCP would auto-allocate ephemeral IPs if no external IPs are provided.
type RouterNat struct {
	// AutoNetworkTier: The network tier to use when automatically reserving NAT IP
	// addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the
	// current project-level default tier is used.
	//
	// Possible values:
	//   "FIXED_STANDARD" - Public internet quality with fixed bandwidth.
	//   "PREMIUM" - High quality, Google-grade network tier, support for all
	// networking products.
	//   "SELECT" - Price competitive network tier, support for all networking
	// products.
	//   "STANDARD" - Public internet quality, only limited support for other
	// networking products.
	//   "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for
	// FIXED_STANDARD when fixed standard tier is expired or not configured.
	AutoNetworkTier string `json:"autoNetworkTier,omitempty"`
	// DrainNatIps: A list of URLs of the IP resources to be drained. These IPs
	// must be valid static external IPs that have been assigned to the NAT. These
	// IPs should be used for updating/patching a NAT only.
	DrainNatIps []string `json:"drainNatIps,omitempty"`
	// EnableDynamicPortAllocation: Enable Dynamic Port Allocation. If not
	// specified, it is disabled by default. If set to true, - Dynamic Port
	// Allocation will be enabled on this NAT config. -
	// enableEndpointIndependentMapping cannot be set to true. - If minPorts is
	// set, minPortsPerVm must be set to a power of two greater than or equal to
	// 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to
	// a VM from this NAT config.
	EnableDynamicPortAllocation      bool `json:"enableDynamicPortAllocation,omitempty"`
	EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"`
	// EndpointTypes: List of NAT-ted endpoint types supported by the Nat Gateway.
	// If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM
	//
	// Possible values:
	//   "ENDPOINT_TYPE_MANAGED_PROXY_LB" - This is used for regional Application
	// Load Balancers (internal and external) and regional proxy Network Load
	// Balancers (internal and external) endpoints.
	//   "ENDPOINT_TYPE_SWG" - This is used for Secure Web Gateway endpoints.
	//   "ENDPOINT_TYPE_VM" - This is the default.
	EndpointTypes []string `json:"endpointTypes,omitempty"`
	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections. Defaults to
	// 30s if not set.
	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
	// LogConfig: Configure logging on this NAT.
	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
	// MaxPortsPerVm: Maximum number of ports allocated to a VM from this NAT
	// config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation
	// is not enabled, this field has no effect. If Dynamic Port Allocation is
	// enabled, and this field is set, it must be set to a power of two greater
	// than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port
	// Allocation is enabled and this field is not set, a maximum of 65536 ports
	// will be allocated to a VM from this NAT config.
	MaxPortsPerVm int64 `json:"maxPortsPerVm,omitempty"`
	// MinPortsPerVm: Minimum number of ports allocated to a VM from this NAT
	// config. If not set, a default number of ports is allocated to a VM. This is
	// rounded up to the nearest power of 2. For example, if the value of this
	// field is 50, at least 64 ports are allocated to a VM.
	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
	// Name: Unique name of this Nat service. The name must be 1-63 characters long
	// and comply with RFC1035.
	Name string `json:"name,omitempty"`
	// Nat64subnetworks: List of Subnetwork resources whose traffic should be
	// translated by NAT64 Gateway. It is used only when LIST_OF_IPV6_SUBNETWORKS
	// is selected for the SubnetworkIpRangeToNat64Option above.
	Nat64subnetworks []*RouterNatSubnetworkToNat64 `json:"nat64subnetworks,omitempty"`
	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take one of
	// the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by
	// customers. When there are not enough specified Nat IPs, the Nat service
	// fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud
	// Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
	// nat_ip should be empty.
	//
	// Possible values:
	//   "AUTO_ONLY" - Nat IPs are allocated by GCP; customers can not specify any
	// Nat IPs.
	//   "MANUAL_ONLY" - Only use Nat IPs provided by customers. When specified Nat
	// IPs are not enough then the Nat service fails for new VMs.
	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
	// NatIps: A list of URLs of the IP resources used for this Nat service. These
	// IP addresses must be valid static external IP addresses assigned to the
	// project.
	NatIps []string `json:"natIps,omitempty"`
	// Rules: A list of rules associated with this NAT.
	Rules []*RouterNatRule `json:"rules,omitempty"`
	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take one of
	// the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges
	// in every Subnetwork are allowed to Nat. -
	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every
	// Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks
	// are allowed to Nat (specified in the field subnetwork below) The default is
	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field
	// contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other
	// Router.Nat section in any Router for this network in this region.
	//
	// Possible values:
	//   "ALL_SUBNETWORKS_ALL_IP_RANGES" - All the IP ranges in every Subnetwork
	// are allowed to Nat.
	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES" - All the primary IP ranges in
	// every Subnetwork are allowed to Nat.
	//   "LIST_OF_SUBNETWORKS" - A list of Subnetworks are allowed to Nat
	// (specified in the field subnetwork below)
	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
	// SourceSubnetworkIpRangesToNat64: Specify the Nat option for NAT64, which can
	// take one of the following values: - ALL_IPV6_SUBNETWORKS: All of the IP
	// ranges in every Subnetwork are allowed to Nat. - LIST_OF_IPV6_SUBNETWORKS: A
	// list of Subnetworks are allowed to Nat (specified in the field
	// nat64_subnetwork below) The default is NAT64_OPTION_UNSPECIFIED. Note that
	// if this field contains NAT64_ALL_V6_SUBNETWORKS no other Router.Nat section
	// in this region can also enable NAT64 for any Subnetworks in this network.
	// Other Router.Nat sections can still be present to enable NAT44 only.
	//
	// Possible values:
	//   "ALL_IPV6_SUBNETWORKS" - NAT64 is enabled for all the IPv6 subnet ranges.
	// In dual stack subnets, NAT64 will only be enabled for IPv6-only VMs.
	//   "LIST_OF_IPV6_SUBNETWORKS" - NAT64 is enabled for a list of IPv6 subnet
	// ranges. In dual stack subnets, NAT64 will only be enabled for IPv6-only VMs.
	// If this option is used, the nat64_subnetworks field must be specified.
	SourceSubnetworkIpRangesToNat64 string `json:"sourceSubnetworkIpRangesToNat64,omitempty"`
	// Subnetworks: A list of Subnetwork resources whose traffic should be
	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is
	// selected for the SubnetworkIpRangeToNatOption above.
	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP established
	// connections. Defaults to 1200s if not set.
	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
	// TcpTimeWaitTimeoutSec: Timeout (in seconds) for TCP connections that are in
	// TIME_WAIT state. Defaults to 120s if not set.
	TcpTimeWaitTimeoutSec int64 `json:"tcpTimeWaitTimeoutSec,omitempty"`
	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
	// connections. Defaults to 30s if not set.
	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
	// Type: Indicates whether this NAT is used for public or private IP
	// translation. If unspecified, it defaults to PUBLIC.
	//
	// Possible values:
	//   "PRIVATE" - NAT used for private IP translation.
	//   "PUBLIC" - NAT used for public IP translation. This is the default.
	Type string `json:"type,omitempty"`
	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults to 30s
	// if not set.
	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoNetworkTier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoNetworkTier") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterNat) MarshalJSON() ([]byte, error) {
	type NoMethod RouterNat
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterNatLogConfig: Configuration of logging on a NAT.
type RouterNatLogConfig struct {
	// Enable: Indicates whether or not to export logs. This is false by default.
	Enable bool `json:"enable,omitempty"`
	// Filter: Specify the desired filtering of logs on this NAT. If unspecified,
	// logs are exported for all connections handled by this NAT. This option can
	// take one of the following values: - ERRORS_ONLY: Export logs only for
	// connection failures. - TRANSLATIONS_ONLY: Export logs only for successful
	// connections. - ALL: Export logs for all connections, successful and
	// unsuccessful.
	//
	// Possible values:
	//   "ALL" - Export logs for all (successful and unsuccessful) connections.
	//   "ERRORS_ONLY" - Export logs for connection failures only.
	//   "TRANSLATIONS_ONLY" - Export logs for successful connections only.
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterNatLogConfig) MarshalJSON() ([]byte, error) {
	type NoMethod RouterNatLogConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterNatRule struct {
	// Action: The action to be enforced for traffic that matches this rule.
	Action *RouterNatRuleAction `json:"action,omitempty"`
	// Description: An optional description of this rule.
	Description string `json:"description,omitempty"`
	// Match: CEL expression that specifies the match condition that egress traffic
	// from a VM is evaluated against. If it evaluates to true, the corresponding
	// `action` is enforced. The following examples are valid match expressions for
	// public NAT: `inIpRange(destination.ip, '1.1.0.0/16') ||
	// inIpRange(destination.ip, '2.2.0.0/16')` `destination.ip == '1.1.0.1' ||
	// destination.ip == '8.8.8.8'` The following example is a valid match
	// expression for private NAT: `nexthop.hub ==
	// '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hu
	// bs/hub-1'`
	Match string `json:"match,omitempty"`
	// RuleNumber: An integer uniquely identifying a rule in the list. The rule
	// number must be a positive value between 0 and 65000, and must be unique
	// among rules within a NAT.
	RuleNumber int64 `json:"ruleNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterNatRule) MarshalJSON() ([]byte, error) {
	type NoMethod RouterNatRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterNatRuleAction struct {
	// SourceNatActiveIps: A list of URLs of the IP resources used for this NAT
	// rule. These IP addresses must be valid static external IP addresses assigned
	// to the project. This field is used for public NAT.
	SourceNatActiveIps []string `json:"sourceNatActiveIps,omitempty"`
	// SourceNatActiveRanges: A list of URLs of the subnetworks used as source
	// ranges for this NAT Rule. These subnetworks must have purpose set to
	// PRIVATE_NAT. This field is used for private NAT.
	SourceNatActiveRanges []string `json:"sourceNatActiveRanges,omitempty"`
	// SourceNatDrainIps: A list of URLs of the IP resources to be drained. These
	// IPs must be valid static external IPs that have been assigned to the NAT.
	// These IPs should be used for updating/patching a NAT rule only. This field
	// is used for public NAT.
	SourceNatDrainIps []string `json:"sourceNatDrainIps,omitempty"`
	// SourceNatDrainRanges: A list of URLs of subnetworks representing source
	// ranges to be drained. This is only supported on patch/update, and these
	// subnetworks must have previously been used as active ranges in this NAT
	// Rule. This field is used for private NAT.
	SourceNatDrainRanges []string `json:"sourceNatDrainRanges,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SourceNatActiveIps") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SourceNatActiveIps") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterNatRuleAction) MarshalJSON() ([]byte, error) {
	type NoMethod RouterNatRuleAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT for a
// subnetwork.
type RouterNatSubnetworkToNat struct {
	// Name: URL for the subnetwork resource that will use NAT.
	Name string `json:"name,omitempty"`
	// SecondaryIpRangeNames: A list of the secondary ranges of the Subnetwork that
	// are allowed to use NAT. This can be populated only if
	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
	// source_ip_ranges_to_nat.
	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
	// SourceIpRangesToNat: Specify the options for NAT ranges in the Subnetwork.
	// All options of a single value are valid except
	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values
	// is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default:
	// [ALL_IP_RANGES]
	//
	// Possible values:
	//   "ALL_IP_RANGES" - The primary and all the secondary ranges are allowed to
	// Nat.
	//   "LIST_OF_SECONDARY_IP_RANGES" - A list of secondary ranges are allowed to
	// Nat.
	//   "PRIMARY_IP_RANGE" - The primary range is allowed to Nat.
	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
	type NoMethod RouterNatSubnetworkToNat
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterNatSubnetworkToNat64: Specifies a subnetwork to enable NAT64.
type RouterNatSubnetworkToNat64 struct {
	// Name: URL for the subnetwork resource that will use NAT64.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterNatSubnetworkToNat64) MarshalJSON() ([]byte, error) {
	type NoMethod RouterNatSubnetworkToNat64
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterStatus struct {
	// BestRoutes: A list of the best dynamic routes for this Cloud Router's
	// Virtual Private Cloud (VPC) network in the same region as this Cloud Router.
	// Lists all of the best routes per prefix that are programmed into this
	// region's VPC data plane. When global dynamic routing mode is turned on in
	// the VPC network, this list can include cross-region dynamic routes from
	// Cloud Routers in other regions.
	BestRoutes []*Route `json:"bestRoutes,omitempty"`
	// BestRoutesForRouter: A list of the best BGP routes learned by this Cloud
	// Router. It is possible that routes listed might not be programmed into the
	// data plane, if the Google Cloud control plane finds a more optimal route for
	// a prefix than a route learned by this Cloud Router.
	BestRoutesForRouter []*Route                     `json:"bestRoutesForRouter,omitempty"`
	BgpPeerStatus       []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
	NatStatus           []*RouterStatusNatStatus     `json:"natStatus,omitempty"`
	// Network: URI of the network to which this router belongs.
	Network string `json:"network,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BestRoutes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterStatus) MarshalJSON() ([]byte, error) {
	type NoMethod RouterStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterStatusBgpPeerStatus struct {
	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
	AdvertisedRoutes []*Route   `json:"advertisedRoutes,omitempty"`
	BfdStatus        *BfdStatus `json:"bfdStatus,omitempty"`
	// EnableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if
	// the peerIpAddress is version 4.
	EnableIpv4 bool `json:"enableIpv4,omitempty"`
	// EnableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if
	// the peerIpAddress is version 6.
	EnableIpv6 bool `json:"enableIpv6,omitempty"`
	// IpAddress: IP address of the local BGP interface.
	IpAddress string `json:"ipAddress,omitempty"`
	// Ipv4NexthopAddress: IPv4 address of the local BGP interface.
	Ipv4NexthopAddress string `json:"ipv4NexthopAddress,omitempty"`
	// Ipv6NexthopAddress: IPv6 address of the local BGP interface.
	Ipv6NexthopAddress string `json:"ipv6NexthopAddress,omitempty"`
	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
	// Md5AuthEnabled: Informs whether MD5 authentication is enabled on this BGP
	// peer.
	Md5AuthEnabled bool `json:"md5AuthEnabled,omitempty"`
	// Name: Name of this BGP peer. Unique within the Routers resource.
	Name string `json:"name,omitempty"`
	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
	// PeerIpAddress: IP address of the remote BGP interface.
	PeerIpAddress string `json:"peerIpAddress,omitempty"`
	// PeerIpv4NexthopAddress: IPv4 address of the remote BGP interface.
	PeerIpv4NexthopAddress string `json:"peerIpv4NexthopAddress,omitempty"`
	// PeerIpv6NexthopAddress: IPv6 address of the remote BGP interface.
	PeerIpv6NexthopAddress string `json:"peerIpv6NexthopAddress,omitempty"`
	// RouterApplianceInstance: [Output only] URI of the VM instance that is used
	// as third-party router appliances such as Next Gen Firewalls, Virtual
	// Routers, or Router Appliances. The VM instance is the peer side of the BGP
	// session.
	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
	// State: The state of the BGP session. For a list of possible values for this
	// field, see BGP session states.
	State string `json:"state,omitempty"`
	// Status: Status of the BGP peer: {UP, DOWN}
	//
	// Possible values:
	//   "DOWN"
	//   "UNKNOWN"
	//   "UP"
	Status string `json:"status,omitempty"`
	// StatusReason: Indicates why particular status was returned.
	//
	// Possible values:
	//   "IPV4_PEER_ON_IPV6_ONLY_CONNECTION" - BGP peer disabled because it
	// requires IPv4 but the underlying connection is IPv6-only.
	//   "IPV6_PEER_ON_IPV4_ONLY_CONNECTION" - BGP peer disabled because it
	// requires IPv6 but the underlying connection is IPv4-only.
	//   "MD5_AUTH_INTERNAL_PROBLEM" - Indicates internal problems with
	// configuration of MD5 authentication. This particular reason can only be
	// returned when md5AuthEnabled is true and status is DOWN.
	//   "STATUS_REASON_UNSPECIFIED"
	StatusReason string `json:"statusReason,omitempty"`
	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6 days,
	// 23 hours, 59 minutes, 59 seconds
	Uptime string `json:"uptime,omitempty"`
	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
	type NoMethod RouterStatusBgpPeerStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterStatusNatStatus: Status of a NAT contained in this router.
type RouterStatusNatStatus struct {
	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
	// ["1.1.1.1", "129.2.16.89"]
	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that are in
	// drain mode. Example: ["1.1.1.1", "179.12.26.133"].
	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that are in
	// drain mode. Example: ["1.1.1.1", "179.12.26.133"].
	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will be
	// greater than 0 only if user-specified IPs are NOT enough to allow all
	// configured VMs to use NAT. This value is meaningful only when
	// auto-allocation of NAT IPs is *not* used.
	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
	// Name: Unique name of this NAT.
	Name string `json:"name,omitempty"`
	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics) that can
	// use NAT.
	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
	// RuleStatus: Status of rules in this NAT.
	RuleStatus []*RouterStatusNatStatusNatRuleStatus `json:"ruleStatus,omitempty"`
	// UserAllocatedNatIpResources: A list of fully qualified URLs of reserved IP
	// address resources.
	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will be raw
	// IP strings like "179.12.26.133".
	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
	type NoMethod RouterStatusNatStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RouterStatusNatStatusNatRuleStatus: Status of a NAT Rule contained in this
// NAT.
type RouterStatusNatStatusNatRuleStatus struct {
	// ActiveNatIps: A list of active IPs for NAT. Example: ["1.1.1.1",
	// "179.12.26.133"].
	ActiveNatIps []string `json:"activeNatIps,omitempty"`
	// DrainNatIps: A list of IPs for NAT that are in drain mode. Example:
	// ["1.1.1.1", "179.12.26.133"].
	DrainNatIps []string `json:"drainNatIps,omitempty"`
	// MinExtraIpsNeeded: The number of extra IPs to allocate. This will be greater
	// than 0 only if the existing IPs in this NAT Rule are NOT enough to allow all
	// configured VMs to use NAT.
	MinExtraIpsNeeded int64 `json:"minExtraIpsNeeded,omitempty"`
	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., NICs) that have
	// NAT Mappings from this NAT Rule.
	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
	// RuleNumber: Rule number of the rule.
	RuleNumber int64 `json:"ruleNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActiveNatIps") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActiveNatIps") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterStatusNatStatusNatRuleStatus) MarshalJSON() ([]byte, error) {
	type NoMethod RouterStatusNatStatusNatRuleStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RouterStatusResponse struct {
	// Kind: Type of resource.
	Kind   string        `json:"kind,omitempty"`
	Result *RouterStatus `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Kind") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Kind") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RouterStatusResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RouterStatusResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersGetNamedSetResponse struct {
	// Etag: end_interface: MixerGetResponseWithEtagBuilder
	Etag     string    `json:"etag,omitempty"`
	Resource *NamedSet `json:"resource,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersGetNamedSetResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersGetNamedSetResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersGetRoutePolicyResponse struct {
	// Etag: end_interface: MixerGetResponseWithEtagBuilder
	Etag     string       `json:"etag,omitempty"`
	Resource *RoutePolicy `json:"resource,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersGetRoutePolicyResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersGetRoutePolicyResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersListBgpRoutes struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#routersListBgpRoutes
	// for lists of bgp routes.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Result: [Output Only] A list of bgp routes.
	Result []*BgpRoute `json:"result,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RoutersListBgpRoutesWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListBgpRoutes) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListBgpRoutes
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RoutersListBgpRoutesWarning: [Output Only] Informational warning message.
type RoutersListBgpRoutesWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RoutersListBgpRoutesWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListBgpRoutesWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListBgpRoutesWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersListBgpRoutesWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListBgpRoutesWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListBgpRoutesWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersListNamedSets struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#routersListNamedSets
	// for lists of named sets.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Result: [Output Only] A list of named sets.
	Result []*NamedSet `json:"result,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RoutersListNamedSetsWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListNamedSets) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListNamedSets
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RoutersListNamedSetsWarning: [Output Only] Informational warning message.
type RoutersListNamedSetsWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RoutersListNamedSetsWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListNamedSetsWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListNamedSetsWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersListNamedSetsWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListNamedSetsWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListNamedSetsWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersListRoutePolicies struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#routersListRoutePolicies for lists of route policies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Result: [Output Only] A list of route policies.
	Result []*RoutePolicy `json:"result,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RoutersListRoutePoliciesWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListRoutePolicies) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListRoutePolicies
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RoutersListRoutePoliciesWarning: [Output Only] Informational warning
// message.
type RoutersListRoutePoliciesWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RoutersListRoutePoliciesWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListRoutePoliciesWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListRoutePoliciesWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersListRoutePoliciesWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersListRoutePoliciesWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersListRoutePoliciesWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersPreviewResponse struct {
	// Resource: Preview of given router.
	Resource *Router `json:"resource,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Resource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Resource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersPreviewResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersScopedList struct {
	// Routers: A list of routers contained in this scope.
	Routers []*Router `json:"routers,omitempty"`
	// Warning: Informational warning which replaces the list of routers when the
	// list is empty.
	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Routers") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Routers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RoutersScopedListWarning: Informational warning which replaces the list of
// routers when the list is empty.
type RoutersScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutersScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RoutersScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Rule: This is deprecated and has no effect. Do not use.
type Rule struct {
	// Action: This is deprecated and has no effect. Do not use.
	//
	// Possible values:
	//   "ALLOW" - This is deprecated and has no effect. Do not use.
	//   "ALLOW_WITH_LOG" - This is deprecated and has no effect. Do not use.
	//   "DENY" - This is deprecated and has no effect. Do not use.
	//   "DENY_WITH_LOG" - This is deprecated and has no effect. Do not use.
	//   "LOG" - This is deprecated and has no effect. Do not use.
	//   "NO_ACTION" - This is deprecated and has no effect. Do not use.
	Action string `json:"action,omitempty"`
	// Conditions: This is deprecated and has no effect. Do not use.
	Conditions []*Condition `json:"conditions,omitempty"`
	// Description: This is deprecated and has no effect. Do not use.
	Description string `json:"description,omitempty"`
	// Ins: This is deprecated and has no effect. Do not use.
	Ins []string `json:"ins,omitempty"`
	// LogConfigs: This is deprecated and has no effect. Do not use.
	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
	// NotIns: This is deprecated and has no effect. Do not use.
	NotIns []string `json:"notIns,omitempty"`
	// Permissions: This is deprecated and has no effect. Do not use.
	Permissions []string `json:"permissions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Rule) MarshalJSON() ([]byte, error) {
	type NoMethod Rule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SSLHealthCheck struct {
	// Port: The TCP port number to which the health check prober sends packets.
	// The default value is 443. Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortName: Not supported.
	PortName string `json:"portName,omitempty"`
	// PortSpecification: Specifies how a port is selected for health checking. Can
	// be one of the following values: USE_FIXED_PORT: Specifies a port number
	// explicitly using the port field in the health check. Supported by backend
	// services for passthrough load balancers and backend services for proxy load
	// balancers. Not supported by target pools. The health check supports all
	// backends supported by the backend service provided the backend can be health
	// checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT
	// network endpoint groups, and instance group backends. USE_NAMED_PORT: Not
	// supported. USE_SERVING_PORT: Provides an indirect method of specifying the
	// health check port by referring to the backend service. Only supported by
	// backend services for proxy load balancers. Not supported by target pools.
	// Not supported by backend services for passthrough load balancers. Supports
	// all backends that can be health checked; for example, GCE_VM_IP_PORT network
	// endpoint groups and instance group backends. For GCE_VM_IP_PORT network
	// endpoint group backends, the health check uses the port number specified for
	// each endpoint in the network endpoint group. For instance group backends,
	// the health check uses the port number determined by looking up the backend
	// service's named port in the instance group's list of named ports.
	//
	// Possible values:
	//   "USE_FIXED_PORT" - The port number in the health check's port is used for
	// health checking. Applies to network endpoint group and instance group
	// backends.
	//   "USE_NAMED_PORT" - Not supported.
	//   "USE_SERVING_PORT" - For network endpoint group backends, the health check
	// uses the port number specified on each endpoint in the network endpoint
	// group. For instance group backends, the health check uses the port number
	// specified for the backend service's named port defined in the instance
	// group's named ports.
	PortSpecification string `json:"portSpecification,omitempty"`
	// ProxyHeader: Specifies the type of proxy header to append before sending
	// data to the backend, either NONE or PROXY_V1. The default is NONE.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// Request: Instructs the health check prober to send this exact ASCII string,
	// up to 1024 bytes in length, after establishing the TCP connection and SSL
	// handshake.
	Request string `json:"request,omitempty"`
	// Response: Creates a content-based SSL health check. In addition to
	// establishing a TCP connection and the TLS handshake, you can configure the
	// health check to pass only when the backend sends this exact response ASCII
	// string, up to 1024 bytes in length. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp
	Response string `json:"response,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Port") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Port") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SSLHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod SSLHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SavedAttachedDisk: DEPRECATED: Please use compute#savedDisk instead. An
// instance-attached disk resource.
type SavedAttachedDisk struct {
	// AutoDelete: Specifies whether the disk will be auto-deleted when the
	// instance is deleted (but not when the disk is detached from the instance).
	AutoDelete bool `json:"autoDelete,omitempty"`
	// Boot: Indicates that this is a boot disk. The virtual machine will use the
	// first partition of the disk for its root filesystem.
	Boot bool `json:"boot,omitempty"`
	// DeviceName: Specifies the name of the disk attached to the source instance.
	DeviceName string `json:"deviceName,omitempty"`
	// DiskEncryptionKey: The encryption key for the disk.
	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
	// DiskSizeGb: The size of the disk in base-2 GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// DiskType: [Output Only] URL of the disk type resource. For example:
	// projects/project /zones/zone/diskTypes/pd-standard or pd-ssd
	DiskType string `json:"diskType,omitempty"`
	// GuestOsFeatures: A list of features to enable on the guest operating system.
	// Applicable only for bootable images. Read Enabling guest operating system
	// features to see a list of available options.
	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
	// Index: Specifies zero-based index of the disk that is attached to the source
	// instance.
	Index int64 `json:"index,omitempty"`
	// Interface: Specifies the disk interface to use for attaching this disk,
	// which is either SCSI or NVME.
	//
	// Possible values:
	//   "NVDIMM"
	//   "NVME"
	//   "SCSI"
	Interface string `json:"interface,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk for
	// attached disks.
	Kind string `json:"kind,omitempty"`
	// Licenses: [Output Only] Any valid publicly visible licenses.
	Licenses []string `json:"licenses,omitempty"`
	// Mode: The mode in which this disk is attached to the source instance, either
	// READ_WRITE or READ_ONLY.
	//
	// Possible values:
	//   "READ_ONLY" - Attaches this disk in read-only mode. Multiple virtual
	// machines can use a disk in read-only mode at a time.
	//   "READ_WRITE" - *[Default]* Attaches this disk in read-write mode. Only one
	// virtual machine at a time can be attached to a disk in read-write mode.
	Mode string `json:"mode,omitempty"`
	// Source: Specifies a URL of the disk attached to the source instance.
	Source string `json:"source,omitempty"`
	// StorageBytes: [Output Only] A size of the storage used by the disk's
	// snapshot by this machine image.
	StorageBytes int64 `json:"storageBytes,omitempty,string"`
	// StorageBytesStatus: [Output Only] An indicator whether storageBytes is in a
	// stable state or it is being adjusted as a result of shared storage
	// reallocation. This status can either be UPDATING, meaning the size of the
	// snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot
	// is up-to-date.
	//
	// Possible values:
	//   "UPDATING"
	//   "UP_TO_DATE"
	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
	// Type: Specifies the type of the attached disk, either SCRATCH or PERSISTENT.
	//
	// Possible values:
	//   "PERSISTENT"
	//   "SCRATCH"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDelete") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SavedAttachedDisk) MarshalJSON() ([]byte, error) {
	type NoMethod SavedAttachedDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SavedDisk: An instance-attached disk resource.
type SavedDisk struct {
	// Architecture: [Output Only] The architecture of the attached disk.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#savedDisk for
	// attached disks.
	Kind string `json:"kind,omitempty"`
	// SourceDisk: Specifies a URL of the disk attached to the source instance.
	SourceDisk string `json:"sourceDisk,omitempty"`
	// StorageBytes: [Output Only] Size of the individual disk snapshot used by
	// this machine image.
	StorageBytes int64 `json:"storageBytes,omitempty,string"`
	// StorageBytesStatus: [Output Only] An indicator whether storageBytes is in a
	// stable state or it is being adjusted as a result of shared storage
	// reallocation. This status can either be UPDATING, meaning the size of the
	// snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot
	// is up-to-date.
	//
	// Possible values:
	//   "UPDATING"
	//   "UP_TO_DATE"
	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Architecture") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Architecture") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SavedDisk) MarshalJSON() ([]byte, error) {
	type NoMethod SavedDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ScalingScheduleStatus struct {
	// LastStartTime: [Output Only] The last time the scaling schedule became
	// active. Note: this is a timestamp when a schedule actually became active,
	// not when it was planned to do so. The timestamp is in RFC3339 text format.
	LastStartTime string `json:"lastStartTime,omitempty"`
	// NextStartTime: [Output Only] The next time the scaling schedule is to become
	// active. Note: this is a timestamp when a schedule is planned to run, but the
	// actual time might be slightly different. The timestamp is in RFC3339 text
	// format.
	NextStartTime string `json:"nextStartTime,omitempty"`
	// State: [Output Only] The current state of a scaling schedule.
	//
	// Possible values:
	//   "ACTIVE" - The current autoscaling recommendation is influenced by this
	// scaling schedule.
	//   "DISABLED" - This scaling schedule has been disabled by the user.
	//   "OBSOLETE" - This scaling schedule will never become active again.
	//   "READY" - The current autoscaling recommendation is not influenced by this
	// scaling schedule.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LastStartTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LastStartTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ScalingScheduleStatus) MarshalJSON() ([]byte, error) {
	type NoMethod ScalingScheduleStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Scheduling: Sets the scheduling options for an Instance.
type Scheduling struct {
	// AutomaticRestart: Specifies whether the instance should be automatically
	// restarted if it is terminated by Compute Engine (not terminated by a user).
	// You can only set the automatic restart option for standard instances.
	// Preemptible instances cannot be automatically restarted. By default, this is
	// set to true so an instance is automatically restarted if it is terminated by
	// Compute Engine.
	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
	// AvailabilityDomain: Specifies the availability domain to place the instance
	// in. The value must be a number between 1 and the number of availability
	// domains specified in the spread placement policy attached to the instance.
	AvailabilityDomain int64 `json:"availabilityDomain,omitempty"`
	// CurrentCpus: Current number of vCPUs available for VM. 0 or unset means
	// default vCPUs of the current machine type.
	CurrentCpus int64 `json:"currentCpus,omitempty"`
	// CurrentMemoryMb: Current amount of memory (in MB) available for VM. 0 or
	// unset means default amount of memory of the current machine type.
	CurrentMemoryMb  int64                       `json:"currentMemoryMb,omitempty,string"`
	GracefulShutdown *SchedulingGracefulShutdown `json:"gracefulShutdown,omitempty"`
	// HostErrorTimeoutSeconds: Specify the time in seconds for host error
	// detection, the value must be within the range of [90, 330] with the
	// increment of 30, if unset, the default behavior of host error recovery will
	// be used.
	HostErrorTimeoutSeconds int64 `json:"hostErrorTimeoutSeconds,omitempty"`
	// InstanceTerminationAction: Specifies the termination action for the
	// instance.
	//
	// Possible values:
	//   "DELETE" - Delete the VM.
	//   "INSTANCE_TERMINATION_ACTION_UNSPECIFIED" - Default value. This value is
	// unused.
	//   "STOP" - Stop the VM without storing in-memory content. default action.
	InstanceTerminationAction string `json:"instanceTerminationAction,omitempty"`
	// LatencyTolerant: Defines whether the instance is tolerant of higher cpu
	// latency. This can only be set during instance creation, or when the instance
	// is not currently running. It must not be set if the preemptible option is
	// also set.
	LatencyTolerant bool `json:"latencyTolerant,omitempty"`
	// LocalSsdRecoveryTimeout: Specifies the maximum amount of time a Local Ssd Vm
	// should wait while recovery of the Local Ssd state is attempted. Its value
	// should be in between 0 and 168 hours with hour granularity and the default
	// value being 1 hour.
	LocalSsdRecoveryTimeout *Duration `json:"localSsdRecoveryTimeout,omitempty"`
	// LocationHint: An opaque location hint used to place the instance close to
	// other resources. This field is for use by internal tools that use the public
	// API.
	LocationHint string `json:"locationHint,omitempty"`
	// MaintenanceFreezeDurationHours: Specifies the number of hours after VM
	// instance creation where the VM won't be scheduled for maintenance.
	MaintenanceFreezeDurationHours int64 `json:"maintenanceFreezeDurationHours,omitempty"`
	// MaintenanceInterval: Specifies the frequency of planned maintenance events.
	// The accepted values are: `PERIODIC`.
	//
	// Possible values:
	//   "AS_NEEDED" - VMs are eligible to receive infrastructure and hypervisor
	// updates as they become available. This may result in more maintenance
	// operations (live migrations or terminations) for the VM than the PERIODIC
	// and RECURRENT options.
	//   "PERIODIC" - VMs receive infrastructure and hypervisor updates on a
	// periodic basis, minimizing the number of maintenance operations (live
	// migrations or terminations) on an individual VM. This may mean a VM will
	// take longer to receive an update than if it was configured for AS_NEEDED.
	// Security updates will still be applied as soon as they are available.
	//   "RECURRENT" - VMs receive infrastructure and hypervisor updates on a
	// periodic basis, minimizing the number of maintenance operations (live
	// migrations or terminations) on an individual VM. This may mean a VM will
	// take longer to receive an update than if it was configured for AS_NEEDED.
	// Security updates will still be applied as soon as they are available.
	// RECURRENT is used for GEN3 and Slice of Hardware VMs.
	MaintenanceInterval string `json:"maintenanceInterval,omitempty"`
	// MaxRunDuration: Specifies the max run duration for the given instance. If
	// specified, the instance termination action will be performed at the end of
	// the run duration.
	MaxRunDuration *Duration `json:"maxRunDuration,omitempty"`
	// MinNodeCpus: The minimum number of virtual CPUs this instance will consume
	// when running on a sole-tenant node.
	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
	// NodeAffinities: A set of node affinity and anti-affinity configurations.
	// Refer to Configuring node affinity for more information. Overrides
	// reservationAffinity.
	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
	// OnHostMaintenance: Defines the maintenance behavior for this instance. For
	// standard instances, the default behavior is MIGRATE. For preemptible
	// instances, the default and only possible behavior is TERMINATE. For more
	// information, see Set VM host maintenance policy.
	//
	// Possible values:
	//   "MIGRATE" - *[Default]* Allows Compute Engine to automatically migrate
	// instances out of the way of maintenance events.
	//   "TERMINATE" - Tells Compute Engine to terminate and (optionally) restart
	// the instance away from the maintenance activity. If you would like your
	// instance to be restarted, set the automaticRestart flag to true. Your
	// instance may be restarted more than once, and it may be restarted outside
	// the window of maintenance events.
	OnHostMaintenance    string                          `json:"onHostMaintenance,omitempty"`
	OnInstanceStopAction *SchedulingOnInstanceStopAction `json:"onInstanceStopAction,omitempty"`
	// Preemptible: Defines whether the instance is preemptible. This can only be
	// set during instance creation or while the instance is stopped and therefore,
	// in a `TERMINATED` state. See Instance Life Cycle for more information on the
	// possible instance states.
	Preemptible bool `json:"preemptible,omitempty"`
	// ProvisioningModel: Specifies the provisioning model of the instance.
	//
	// Possible values:
	//   "SPOT" - Heavily discounted, no guaranteed runtime.
	//   "STANDARD" - Standard provisioning with user controlled runtime, no
	// discounts.
	ProvisioningModel string `json:"provisioningModel,omitempty"`
	// TerminationTime: Specifies the timestamp, when the instance will be
	// terminated, in RFC3339 text format. If specified, the instance termination
	// action will be performed at the termination time.
	TerminationTime string `json:"terminationTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutomaticRestart") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Scheduling) MarshalJSON() ([]byte, error) {
	type NoMethod Scheduling
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SchedulingGracefulShutdown: Configuration for gracefully shutting down the
// instance.
type SchedulingGracefulShutdown struct {
	// Enabled: Opts-in for graceful shutdown.
	Enabled bool `json:"enabled,omitempty"`
	// MaxDuration: Specifies time needed to gracefully shut down the instance.
	// After that time, the instance goes to STOPPING even if graceful shutdown is
	// not completed.
	MaxDuration *Duration `json:"maxDuration,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SchedulingGracefulShutdown) MarshalJSON() ([]byte, error) {
	type NoMethod SchedulingGracefulShutdown
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SchedulingNodeAffinity: Node Affinity: the configuration of desired nodes
// onto which this Instance could be scheduled.
type SchedulingNodeAffinity struct {
	// Key: Corresponds to the label key of Node resource.
	Key string `json:"key,omitempty"`
	// Operator: Defines the operation of node selection. Valid operators are IN
	// for affinity and NOT_IN for anti-affinity.
	//
	// Possible values:
	//   "IN" - Requires Compute Engine to seek for matched nodes.
	//   "NOT_IN" - Requires Compute Engine to avoid certain nodes.
	//   "OPERATOR_UNSPECIFIED"
	Operator string `json:"operator,omitempty"`
	// Values: Corresponds to the label values of Node resource.
	Values []string `json:"values,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
	type NoMethod SchedulingNodeAffinity
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SchedulingOnInstanceStopAction: Defines the behaviour for instances with the
// instance_termination_action STOP.
type SchedulingOnInstanceStopAction struct {
	// DiscardLocalSsd: If true, the contents of any attached Local SSD disks will
	// be discarded else, the Local SSD data will be preserved when the instance is
	// stopped at the end of the run duration/termination time.
	DiscardLocalSsd bool `json:"discardLocalSsd,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiscardLocalSsd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiscardLocalSsd") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SchedulingOnInstanceStopAction) MarshalJSON() ([]byte, error) {
	type NoMethod SchedulingOnInstanceStopAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Screenshot: An instance's screenshot.
type Screenshot struct {
	// Contents: [Output Only] The Base64-encoded screenshot data.
	Contents string `json:"contents,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#screenshot for the
	// screenshots.
	Kind string `json:"kind,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Contents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Contents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Screenshot) MarshalJSON() ([]byte, error) {
	type NoMethod Screenshot
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SdsConfig: [Deprecated] The configuration to access the SDS server. The
// configuration to access the SDS server.
type SdsConfig struct {
	// GrpcServiceConfig: The configuration to access the SDS server over GRPC.
	GrpcServiceConfig *GrpcServiceConfig `json:"grpcServiceConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GrpcServiceConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GrpcServiceConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SdsConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SdsConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPoliciesAggregatedList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SecurityPoliciesScopedList resources.
	Items map[string]SecurityPoliciesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#securityPolicyAggregatedList for lists of Security Policies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SecurityPoliciesAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPoliciesAggregatedListWarning: [Output Only] Informational warning
// message.
type SecurityPoliciesAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SecurityPoliciesAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPoliciesAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g.
	// "PreconfiguredExpressionSets") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PreconfiguredExpressionSets") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPoliciesScopedList struct {
	// SecurityPolicies: A list of SecurityPolicies contained in this scope.
	SecurityPolicies []*SecurityPolicy `json:"securityPolicies,omitempty"`
	// Warning: Informational warning which replaces the list of security policies
	// when the list is empty.
	Warning *SecurityPoliciesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SecurityPolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SecurityPolicies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPoliciesScopedListWarning: Informational warning which replaces the
// list of security policies when the list is empty.
type SecurityPoliciesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SecurityPoliciesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPoliciesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPoliciesWafConfig struct {
	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
	// ForceSendFields is a list of field names (e.g. "WafRules") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WafRules") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPoliciesWafConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicy: Represents a Google Cloud Armor security policy resource.
// Only external backend services that use load balancers can reference a
// security policy. For more information, see Google Cloud Armor security
// policy overview.
type SecurityPolicy struct {
	AdaptiveProtectionConfig *SecurityPolicyAdaptiveProtectionConfig `json:"adaptiveProtectionConfig,omitempty"`
	AdvancedOptionsConfig    *SecurityPolicyAdvancedOptionsConfig    `json:"advancedOptionsConfig,omitempty"`
	// Associations: A list of associations that belong to this policy.
	Associations     []*SecurityPolicyAssociation    `json:"associations,omitempty"`
	CloudArmorConfig *SecurityPolicyCloudArmorConfig `json:"cloudArmorConfig,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp    string                              `json:"creationTimestamp,omitempty"`
	DdosProtectionConfig *SecurityPolicyDdosProtectionConfig `json:"ddosProtectionConfig,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DisplayName: User-provided name of the organization security policy. The
	// name should be unique in the organization in which the security policy is
	// created. This should only be used when SecurityPolicyType is FIREWALL. The
	// name must be 1-63 characters long, and comply with
	// https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be 1-63
	// characters long and match the regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a
	// lowercase letter, and all following characters must be a dash, lowercase
	// letter, or digit, except the last character, which cannot be a dash.
	DisplayName string `json:"displayName,omitempty"`
	// Fingerprint: Specifies a fingerprint for this resource, which is essentially
	// a hash of the metadata's contents and used for optimistic locking. The
	// fingerprint is initially generated by Compute Engine and changes after every
	// request to modify or update metadata. You must always provide an up-to-date
	// fingerprint hash in order to update or change metadata, otherwise the
	// request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make get() request to the security policy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output only] Type of the resource. Always compute#securityPolicyfor
	// security policies
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// security policy, which is essentially a hash of the labels set used for
	// optimistic locking. The fingerprint is initially generated by Compute Engine
	// and changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels.
	// To see the latest fingerprint, make get() request to the security policy.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Parent: [Output Only] The parent of the security policy.
	Parent                 string                                `json:"parent,omitempty"`
	RecaptchaOptionsConfig *SecurityPolicyRecaptchaOptionsConfig `json:"recaptchaOptionsConfig,omitempty"`
	// Region: [Output Only] URL of the region where the regional security policy
	// resides. This field is not applicable to global security policies.
	Region string `json:"region,omitempty"`
	// RuleTupleCount: [Output Only] Total count of all security policy rule
	// tuples. A security policy can not exceed a set number of tuples.
	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
	// Rules: A list of rules that belong to this policy. There must always be a
	// default rule which is a rule with priority 2147483647 and match all
	// condition (for the match condition this means match "*" for srcIpRanges and
	// for the networkMatch condition every field must be either match "*" or not
	// set). If no rules are provided when creating a security policy, a default
	// rule with action "allow" will be added.
	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ShortName: User-provided name of the organization security policy. The name
	// should be unique in the organization in which the security policy is
	// created. This should only be used when SecurityPolicyType is CLOUD_ARMOR.
	// The name must be 1-63 characters long, and comply with
	// https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be 1-63
	// characters long and match the regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a
	// lowercase letter, and all following characters must be a dash, lowercase
	// letter, or digit, except the last character, which cannot be a dash.
	ShortName string `json:"shortName,omitempty"`
	// Type: The type indicates the intended use of the security policy. -
	// CLOUD_ARMOR: Cloud Armor backend security policies can be configured to
	// filter incoming HTTP requests targeting backend services. They filter
	// requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor
	// edge security policies can be configured to filter incoming HTTP requests
	// targeting backend services (including Cloud CDN-enabled) as well as backend
	// buckets (Cloud Storage). They filter requests before the request is served
	// from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal
	// service policies can be configured to filter HTTP requests targeting
	// services managed by Traffic Director in a service mesh. They filter requests
	// before the request is served from the application. - CLOUD_ARMOR_NETWORK:
	// Cloud Armor network policies can be configured to filter packets targeting
	// network load balancing resources such as backend services, target pools,
	// target instances, and instances with external IPs. They filter requests
	// before the request is served from the application. This field can be set
	// only at resource creation time.
	//
	// Possible values:
	//   "CLOUD_ARMOR"
	//   "CLOUD_ARMOR_EDGE"
	//   "CLOUD_ARMOR_INTERNAL_SERVICE"
	//   "CLOUD_ARMOR_NETWORK"
	//   "FIREWALL"
	Type string `json:"type,omitempty"`
	// UserDefinedFields: Definitions of user-defined fields for
	// CLOUD_ARMOR_NETWORK policies. A user-defined field consists of up to 4 bytes
	// extracted from a fixed offset in the packet, relative to the IPv4, IPv6,
	// TCP, or UDP header, with an optional mask to select certain bits. Rules may
	// then specify matching values for these fields. Example: userDefinedFields: -
	// name: "ipv4_fragment_offset" base: IPV4 offset: 6 size: 2 mask: "0x1fff"
	UserDefinedFields []*SecurityPolicyUserDefinedField `json:"userDefinedFields,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AdaptiveProtectionConfig")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdaptiveProtectionConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyAdaptiveProtectionConfig: Configuration options for Cloud
// Armor Adaptive Protection (CAAP).
type SecurityPolicyAdaptiveProtectionConfig struct {
	AutoDeployConfig *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig `json:"autoDeployConfig,omitempty"`
	// Layer7DdosDefenseConfig: If set to true, enables Cloud Armor Machine
	// Learning.
	Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `json:"layer7DdosDefenseConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoDeployConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDeployConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAdaptiveProtectionConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAdaptiveProtectionConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig: Configuration
// options for Adaptive Protection auto-deploy feature.
type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig struct {
	ConfidenceThreshold       float64 `json:"confidenceThreshold,omitempty"`
	ExpirationSec             int64   `json:"expirationSec,omitempty"`
	ImpactedBaselineThreshold float64 `json:"impactedBaselineThreshold,omitempty"`
	LoadThreshold             float64 `json:"loadThreshold,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConfidenceThreshold") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConfidenceThreshold") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) UnmarshalJSON(data []byte) error {
	type NoMethod SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig
	var s1 struct {
		ConfidenceThreshold       gensupport.JSONFloat64 `json:"confidenceThreshold"`
		ImpactedBaselineThreshold gensupport.JSONFloat64 `json:"impactedBaselineThreshold"`
		LoadThreshold             gensupport.JSONFloat64 `json:"loadThreshold"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConfidenceThreshold = float64(s1.ConfidenceThreshold)
	s.ImpactedBaselineThreshold = float64(s1.ImpactedBaselineThreshold)
	s.LoadThreshold = float64(s1.LoadThreshold)
	return nil
}

// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig: Configuration
// options for L7 DDoS detection. This field is only supported in Global
// Security Policies of type CLOUD_ARMOR.
type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct {
	// Enable: If set to true, enables CAAP for L7 DDoS detection. This field is
	// only supported in Global Security Policies of type CLOUD_ARMOR.
	Enable bool `json:"enable,omitempty"`
	// RuleVisibility: Rule visibility can be one of the following: STANDARD -
	// opaque rules. (default) PREMIUM - transparent rules. This field is only
	// supported in Global Security Policies of type CLOUD_ARMOR.
	//
	// Possible values:
	//   "PREMIUM"
	//   "STANDARD"
	RuleVisibility string `json:"ruleVisibility,omitempty"`
	// ThresholdConfigs: Configuration options for layer7 adaptive protection for
	// various customizable thresholds.
	ThresholdConfigs []*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig `json:"thresholdConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig struct {
	AutoDeployConfidenceThreshold       float64 `json:"autoDeployConfidenceThreshold,omitempty"`
	AutoDeployExpirationSec             int64   `json:"autoDeployExpirationSec,omitempty"`
	AutoDeployImpactedBaselineThreshold float64 `json:"autoDeployImpactedBaselineThreshold,omitempty"`
	AutoDeployLoadThreshold             float64 `json:"autoDeployLoadThreshold,omitempty"`
	DetectionAbsoluteQps                float64 `json:"detectionAbsoluteQps,omitempty"`
	DetectionLoadThreshold              float64 `json:"detectionLoadThreshold,omitempty"`
	DetectionRelativeToBaselineQps      float64 `json:"detectionRelativeToBaselineQps,omitempty"`
	// Name: The name must be 1-63 characters long, and comply with RFC1035. The
	// name must be unique within the security policy.
	Name string `json:"name,omitempty"`
	// TrafficGranularityConfigs: Configuration options for enabling Adaptive
	// Protection to operate on specified granular traffic units.
	TrafficGranularityConfigs []*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig `json:"trafficGranularityConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AutoDeployConfidenceThreshold") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDeployConfidenceThreshold")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig) UnmarshalJSON(data []byte) error {
	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
	var s1 struct {
		AutoDeployConfidenceThreshold       gensupport.JSONFloat64 `json:"autoDeployConfidenceThreshold"`
		AutoDeployImpactedBaselineThreshold gensupport.JSONFloat64 `json:"autoDeployImpactedBaselineThreshold"`
		AutoDeployLoadThreshold             gensupport.JSONFloat64 `json:"autoDeployLoadThreshold"`
		DetectionAbsoluteQps                gensupport.JSONFloat64 `json:"detectionAbsoluteQps"`
		DetectionLoadThreshold              gensupport.JSONFloat64 `json:"detectionLoadThreshold"`
		DetectionRelativeToBaselineQps      gensupport.JSONFloat64 `json:"detectionRelativeToBaselineQps"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AutoDeployConfidenceThreshold = float64(s1.AutoDeployConfidenceThreshold)
	s.AutoDeployImpactedBaselineThreshold = float64(s1.AutoDeployImpactedBaselineThreshold)
	s.AutoDeployLoadThreshold = float64(s1.AutoDeployLoadThreshold)
	s.DetectionAbsoluteQps = float64(s1.DetectionAbsoluteQps)
	s.DetectionLoadThreshold = float64(s1.DetectionLoadThreshold)
	s.DetectionRelativeToBaselineQps = float64(s1.DetectionRelativeToBaselineQps)
	return nil
}

// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigT
// rafficGranularityConfig: Configurations to specifc granular traffic units
// processed by Adaptive Protection.
type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig struct {
	// EnableEachUniqueValue: If enabled, traffic matching each unique value for
	// the specified type constitutes a separate traffic unit. It can only be set
	// to true if `value` is empty.
	EnableEachUniqueValue bool `json:"enableEachUniqueValue,omitempty"`
	// Type: Type of this configuration.
	//
	// Possible values:
	//   "HTTP_HEADER_HOST"
	//   "HTTP_PATH"
	//   "UNSPECIFIED_TYPE"
	Type string `json:"type,omitempty"`
	// Value: Requests that match this value constitute a granular traffic unit.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableEachUniqueValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableEachUniqueValue") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyAdvancedOptionsConfig struct {
	// JsonCustomConfig: Custom configuration to apply the JSON parsing. Only
	// applicable when json_parsing is set to STANDARD.
	JsonCustomConfig *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig `json:"jsonCustomConfig,omitempty"`
	// Possible values:
	//   "DISABLED"
	//   "STANDARD"
	//   "STANDARD_WITH_GRAPHQL"
	JsonParsing string `json:"jsonParsing,omitempty"`
	// Possible values:
	//   "NORMAL"
	//   "VERBOSE"
	LogLevel string `json:"logLevel,omitempty"`
	// UserIpRequestHeaders: An optional list of case-insensitive request header
	// names to use for resolving the callers client IP address.
	UserIpRequestHeaders []string `json:"userIpRequestHeaders,omitempty"`
	// ForceSendFields is a list of field names (e.g. "JsonCustomConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "JsonCustomConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAdvancedOptionsConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAdvancedOptionsConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyAdvancedOptionsConfigJsonCustomConfig struct {
	// ContentTypes: A list of custom Content-Type header values to apply the JSON
	// parsing. As per RFC 1341, a Content-Type header value has the following
	// format: Content-Type := type "/" subtype *[";" parameter] When configuring a
	// custom Content-Type header value, only the type/subtype needs to be
	// specified, and the parameters should be excluded.
	ContentTypes []string `json:"contentTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyAssociation struct {
	// AttachmentId: The resource that the security policy is attached to.
	AttachmentId string `json:"attachmentId,omitempty"`
	// DisplayName: [Output Only] The display name of the security policy of the
	// association.
	DisplayName string `json:"displayName,omitempty"`
	// ExcludedFolders: A list of folders to exclude from the security policy.
	ExcludedFolders []string `json:"excludedFolders,omitempty"`
	// ExcludedProjects: A list of projects to exclude from the security policy.
	ExcludedProjects []string `json:"excludedProjects,omitempty"`
	// Name: The name for an association.
	Name string `json:"name,omitempty"`
	// SecurityPolicyId: [Output Only] The security policy ID of the association.
	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
	// ShortName: [Output Only] The short name of the security policy of the
	// association.
	ShortName string `json:"shortName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AttachmentId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttachmentId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyAssociation) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyAssociation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyCloudArmorConfig: Configuration options for Cloud Armor.
type SecurityPolicyCloudArmorConfig struct {
	// EnableMl: If set to true, enables Cloud Armor Machine Learning.
	EnableMl bool `json:"enableMl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableMl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableMl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyCloudArmorConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyCloudArmorConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyDdosProtectionConfig struct {
	// Possible values:
	//   "ADVANCED"
	//   "ADVANCED_PREVIEW"
	//   "STANDARD"
	DdosProtection string `json:"ddosProtection,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DdosProtection") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DdosProtection") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyDdosProtectionConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyDdosProtectionConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SecurityPolicy resources.
	Items []*SecurityPolicy `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#securityPolicyList for
	// listsof securityPolicies
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyList) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyListWarning: [Output Only] Informational warning message.
type SecurityPolicyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRecaptchaOptionsConfig struct {
	// RedirectSiteKey: An optional field to supply a reCAPTCHA site key to be used
	// for all the rules using the redirect action with the type of
	// GOOGLE_RECAPTCHA under the security policy. The specified site key needs to
	// be created from the reCAPTCHA API. The user is responsible for the validity
	// of the specified site key. If not specified, a Google-managed site key is
	// used. This field is only supported in Global Security Policies of type
	// CLOUD_ARMOR.
	RedirectSiteKey string `json:"redirectSiteKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RedirectSiteKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RedirectSiteKey") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRecaptchaOptionsConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRecaptchaOptionsConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyReference struct {
	SecurityPolicy string `json:"securityPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SecurityPolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyReference) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyRule: Represents a rule that describes one or more match
// conditions along with the action to be taken when traffic matches this
// condition (allow or deny).
type SecurityPolicyRule struct {
	// Action: The Action to perform when the rule is matched. The following are
	// the valid actions: - allow: allow access to target. - deny(STATUS): deny
	// access to target, returns the HTTP response code specified. Valid values for
	// `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to
	// the configured threshold and ban the client if the traffic exceeds the
	// threshold. Configure parameters for this action in RateLimitOptions.
	// Requires rate_limit_options to be set. - redirect: redirect to a different
	// target. This can either be an internal reCAPTCHA redirect, or an external
	// URL-based redirect via a 302 response. Parameters for this action can be
	// configured via redirectOptions. This action is only supported in Global
	// Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to
	// the configured threshold. Configure parameters for this action in
	// rateLimitOptions. Requires rate_limit_options to be set for this.
	Action string `json:"action,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Direction: The direction in which this rule applies. This field may only be
	// specified when versioned_expr is set to FIREWALL.
	//
	// Possible values:
	//   "EGRESS"
	//   "INGRESS"
	Direction string `json:"direction,omitempty"`
	// EnableLogging: Denotes whether to enable logging for a particular rule. If
	// logging is enabled, logs will be exported to the configured export
	// destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub.
	// Note: you cannot enable logging on "goto_next" rules. This field may only be
	// specified when the versioned_expr is set to FIREWALL.
	EnableLogging bool `json:"enableLogging,omitempty"`
	// HeaderAction: Optional, additional actions that are performed on headers.
	// This field is only supported in Global Security Policies of type
	// CLOUD_ARMOR.
	HeaderAction *SecurityPolicyRuleHttpHeaderAction `json:"headerAction,omitempty"`
	// Kind: [Output only] Type of the resource. Always compute#securityPolicyRule
	// for security policy rules
	Kind string `json:"kind,omitempty"`
	// Match: A match condition that incoming traffic is evaluated against. If it
	// evaluates to true, the corresponding 'action' is enforced.
	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
	// NetworkMatch: A match condition that incoming packets are evaluated against
	// for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding
	// 'action' is enforced. The match criteria for a rule consists of built-in
	// match fields (like 'srcIpRanges') and potentially multiple user-defined
	// match fields ('userDefinedFields'). Field values may be extracted directly
	// from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may
	// not be present in every packet (e.g. 'srcPorts'). A user-defined field is
	// only present if the base header is found in the packet and the entire field
	// is in bounds. Each match field may specify which values can match it,
	// listing one or more ranges, prefixes, or exact values that are considered a
	// match for the field. A field value must be present in order to match a
	// specified match field. If no match values are specified for a match field,
	// then any field value is considered to match it, and it's not required to be
	// present. For strings specifying '*' is also equivalent to match all. For a
	// packet to match a rule, all specified match fields must match the
	// corresponding field values derived from the packet. Example: networkMatch:
	// srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name:
	// "ipv4_fragment_offset" values: - "1-0x1fff" The above match condition
	// matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a
	// user-defined field named "ipv4_fragment_offset" with a value between 1 and
	// 0x1fff inclusive.
	NetworkMatch *SecurityPolicyRuleNetworkMatcher `json:"networkMatch,omitempty"`
	// PreconfiguredWafConfig: Preconfigured WAF configuration to be applied for
	// the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if
	// evaluatePreconfiguredWaf() is not used, this field will have no effect.
	PreconfiguredWafConfig *SecurityPolicyRulePreconfiguredWafConfig `json:"preconfiguredWafConfig,omitempty"`
	// Preview: If set to true, the specified action is not enforced.
	Preview bool `json:"preview,omitempty"`
	// Priority: An integer indicating the priority of a rule in the list. The
	// priority must be a positive value between 0 and 2147483647. Rules are
	// evaluated from highest to lowest priority where 0 is the highest priority
	// and 2147483647 is the lowest priority.
	Priority int64 `json:"priority,omitempty"`
	// RateLimitOptions: Must be specified if the action is "rate_based_ban" or
	// "throttle". Cannot be specified for any other actions.
	RateLimitOptions *SecurityPolicyRuleRateLimitOptions `json:"rateLimitOptions,omitempty"`
	// RedirectOptions: Parameters defining the redirect action. Cannot be
	// specified for any other actions. This field is only supported in Global
	// Security Policies of type CLOUD_ARMOR.
	RedirectOptions *SecurityPolicyRuleRedirectOptions `json:"redirectOptions,omitempty"`
	// RedirectTarget: This must be specified for redirect actions. Cannot be
	// specified for any other actions.
	RedirectTarget string `json:"redirectTarget,omitempty"`
	// RuleManagedProtectionTier: [Output Only] The minimum managed protection tier
	// required for this rule. [Deprecated] Use requiredManagedProtectionTiers
	// instead.
	//
	// Possible values:
	//   "CAMP_PLUS_ANNUAL" - Plus tier protection annual.
	//   "CAMP_PLUS_PAYGO" - Plus tier protection monthly.
	//   "CA_STANDARD" - Standard protection.
	RuleManagedProtectionTier string `json:"ruleManagedProtectionTier,omitempty"`
	// RuleNumber: Identifier for the rule. This is only unique within the given
	// security policy. This can only be set during rule creation, if rule number
	// is not specified it will be generated by the server.
	RuleNumber int64 `json:"ruleNumber,omitempty,string"`
	// RuleTupleCount: [Output Only] Calculation of the complexity of a single
	// firewall security policy rule.
	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
	// TargetResources: A list of network resource URLs to which this rule applies.
	// This field allows you to control which network's VMs get this rule. If this
	// field is left blank, all VMs within the organization will receive the rule.
	// This field may only be specified when versioned_expr is set to FIREWALL.
	TargetResources []string `json:"targetResources,omitempty"`
	// TargetServiceAccounts: A list of service accounts indicating the sets of
	// instances that are applied with this rule.
	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRule) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleHttpHeaderAction struct {
	// RequestHeadersToAdds: The list of request headers to add or overwrite if
	// they're already present.
	RequestHeadersToAdds []*SecurityPolicyRuleHttpHeaderActionHttpHeaderOption `json:"requestHeadersToAdds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RequestHeadersToAdds") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleHttpHeaderAction) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleHttpHeaderAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleHttpHeaderActionHttpHeaderOption struct {
	// HeaderName: The name of the header to set.
	HeaderName string `json:"headerName,omitempty"`
	// HeaderValue: The value to set the named header to.
	HeaderValue string `json:"headerValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HeaderName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HeaderName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleHttpHeaderActionHttpHeaderOption) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyRuleMatcher: Represents a match condition that incoming
// traffic is evaluated against. Exactly one field must be specified.
type SecurityPolicyRuleMatcher struct {
	// Config: The configuration options available when specifying versioned_expr.
	// This field must be specified if versioned_expr is specified and cannot be
	// specified if versioned_expr is not specified.
	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
	// Expr: User defined CEVAL expression. A CEVAL expression is used to specify
	// match criteria such as origin.ip, source.region_code and contents in the
	// request header. Expressions containing `evaluateThreatIntelligence` require
	// Cloud Armor Managed Protection Plus tier and are not supported in Edge
	// Policies nor in Regional Policies. Expressions containing
	// `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed
	// Protection Plus tier and are only supported in Global Security Policies.
	Expr *Expr `json:"expr,omitempty"`
	// ExprOptions: The configuration options available when specifying a user
	// defined CEVAL expression (i.e., 'expr').
	ExprOptions *SecurityPolicyRuleMatcherExprOptions `json:"exprOptions,omitempty"`
	// VersionedExpr: Preconfigured versioned expression. If this field is
	// specified, config must also be specified. Available preconfigured
	// expressions along with their requirements are: SRC_IPS_V1 - must specify the
	// corresponding src_ip_range field in config.
	//
	// Possible values:
	//   "FIREWALL"
	//   "SRC_IPS_V1" - Matches the source IP address of a request to the IP ranges
	// supplied in config.
	VersionedExpr string `json:"versionedExpr,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Config") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Config") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleMatcher
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleMatcherConfig struct {
	// DestIpRanges: CIDR IP address range. This field may only be specified when
	// versioned_expr is set to FIREWALL.
	DestIpRanges []string `json:"destIpRanges,omitempty"`
	// DestPorts: Pairs of IP protocols and ports that the rule should match. This
	// field may only be specified when versioned_expr is set to FIREWALL.
	DestPorts []*SecurityPolicyRuleMatcherConfigDestinationPort `json:"destPorts,omitempty"`
	// Layer4Configs: Pairs of IP protocols and ports that the rule should match.
	// This field may only be specified when versioned_expr is set to FIREWALL.
	Layer4Configs []*SecurityPolicyRuleMatcherConfigLayer4Config `json:"layer4Configs,omitempty"`
	// SrcIpRanges: CIDR IP address range. Maximum number of src_ip_ranges allowed
	// is 10.
	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestIpRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleMatcherConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleMatcherConfigDestinationPort struct {
	// IpProtocol: The IP protocol to which this rule applies. The protocol type is
	// required when creating a firewall rule. This value can either be one of the
	// following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
	// or the IP protocol number.
	IpProtocol string `json:"ipProtocol,omitempty"`
	// Ports: An optional list of ports to which this rule applies. This field is
	// only applicable for UDP or TCP protocol. Each entry must be either an
	// integer or a range. If not specified, this rule applies to connections
	// through any port. Example inputs include: ["22"], ["80","443"], and
	// ["12345-12349"]. This field may only be specified when versioned_expr is set
	// to FIREWALL.
	Ports []string `json:"ports,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpProtocol") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleMatcherConfigDestinationPort) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleMatcherConfigDestinationPort
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleMatcherConfigLayer4Config struct {
	// IpProtocol: The IP protocol to which this rule applies. The protocol type is
	// required when creating a firewall rule. This value can either be one of the
	// following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
	// or the IP protocol number.
	IpProtocol string `json:"ipProtocol,omitempty"`
	// Ports: An optional list of ports to which this rule applies. This field is
	// only applicable for UDP or TCP protocol. Each entry must be either an
	// integer or a range. If not specified, this rule applies to connections
	// through any port. Example inputs include: ["22"], ["80","443"], and
	// ["12345-12349"]. This field may only be specified when versioned_expr is set
	// to FIREWALL.
	Ports []string `json:"ports,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpProtocol") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleMatcherConfigLayer4Config) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleMatcherConfigLayer4Config
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleMatcherExprOptions struct {
	// RecaptchaOptions: reCAPTCHA configuration options to be applied for the
	// rule. If the rule does not evaluate reCAPTCHA tokens, this field has no
	// effect.
	RecaptchaOptions *SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions `json:"recaptchaOptions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RecaptchaOptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RecaptchaOptions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleMatcherExprOptions) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleMatcherExprOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions struct {
	// ActionTokenSiteKeys: A list of site keys to be used during the validation of
	// reCAPTCHA action-tokens. The provided site keys need to be created from
	// reCAPTCHA API under the same project where the security policy is created.
	ActionTokenSiteKeys []string `json:"actionTokenSiteKeys,omitempty"`
	// SessionTokenSiteKeys: A list of site keys to be used during the validation
	// of reCAPTCHA session-tokens. The provided site keys need to be created from
	// reCAPTCHA API under the same project where the security policy is created.
	SessionTokenSiteKeys []string `json:"sessionTokenSiteKeys,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActionTokenSiteKeys") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActionTokenSiteKeys") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyRuleNetworkMatcher: Represents a match condition that incoming
// network traffic is evaluated against.
type SecurityPolicyRuleNetworkMatcher struct {
	// DestIpRanges: Destination IPv4/IPv6 addresses or CIDR prefixes, in standard
	// text format.
	DestIpRanges []string `json:"destIpRanges,omitempty"`
	// DestPorts: Destination port numbers for TCP/UDP/SCTP. Each element can be a
	// 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
	DestPorts []string `json:"destPorts,omitempty"`
	// IpProtocols: IPv4 protocol / IPv6 next header (after extension headers).
	// Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g.
	// "253-254"), or one of the following protocol names: "tcp", "udp", "icmp",
	// "esp", "ah", "ipip", or "sctp".
	IpProtocols []string `json:"ipProtocols,omitempty"`
	// SrcAsns: BGP Autonomous System Number associated with the source IP address.
	SrcAsns []int64 `json:"srcAsns,omitempty"`
	// SrcIpRanges: Source IPv4/IPv6 addresses or CIDR prefixes, in standard text
	// format.
	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
	// SrcPorts: Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit
	// unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
	SrcPorts []string `json:"srcPorts,omitempty"`
	// SrcRegionCodes: Two-letter ISO 3166-1 alpha-2 country code associated with
	// the source IP address.
	SrcRegionCodes []string `json:"srcRegionCodes,omitempty"`
	// UserDefinedFields: User-defined fields. Each element names a defined field
	// and lists the matching values for that field.
	UserDefinedFields []*SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch `json:"userDefinedFields,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestIpRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleNetworkMatcher) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleNetworkMatcher
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch struct {
	// Name: Name of the user-defined field, as given in the definition.
	Name string `json:"name,omitempty"`
	// Values: Matching values of the field. Each element can be a 32-bit unsigned
	// decimal or hexadecimal (starting with "0x") number (e.g. "64") or range
	// (e.g. "0x400-0x7ff").
	Values []string `json:"values,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRulePreconfiguredWafConfig struct {
	// Exclusions: A list of exclusions to apply during preconfigured WAF
	// evaluation.
	Exclusions []*SecurityPolicyRulePreconfiguredWafConfigExclusion `json:"exclusions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Exclusions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Exclusions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRulePreconfiguredWafConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRulePreconfiguredWafConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRulePreconfiguredWafConfigExclusion struct {
	// RequestCookiesToExclude: A list of request cookie names whose value will be
	// excluded from inspection during preconfigured WAF evaluation.
	RequestCookiesToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestCookiesToExclude,omitempty"`
	// RequestHeadersToExclude: A list of request header names whose value will be
	// excluded from inspection during preconfigured WAF evaluation.
	RequestHeadersToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestHeadersToExclude,omitempty"`
	// RequestQueryParamsToExclude: A list of request query parameter names whose
	// value will be excluded from inspection during preconfigured WAF evaluation.
	// Note that the parameter can be in the query string or in the POST body.
	RequestQueryParamsToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestQueryParamsToExclude,omitempty"`
	// RequestUrisToExclude: A list of request URIs from the request line to be
	// excluded from inspection during preconfigured WAF evaluation. When
	// specifying this field, the query or fragment part should be excluded.
	RequestUrisToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestUrisToExclude,omitempty"`
	// TargetRuleIds: A list of target rule IDs under the WAF rule set to apply the
	// preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under
	// the WAF rule set.
	TargetRuleIds []string `json:"targetRuleIds,omitempty"`
	// TargetRuleSet: Target WAF rule set to apply the preconfigured WAF exclusion.
	TargetRuleSet string `json:"targetRuleSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RequestCookiesToExclude") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RequestCookiesToExclude") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRulePreconfiguredWafConfigExclusion) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRulePreconfiguredWafConfigExclusion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams struct {
	// Op: The match operator for the field.
	//
	// Possible values:
	//   "CONTAINS" - The operator matches if the field value contains the
	// specified value.
	//   "ENDS_WITH" - The operator matches if the field value ends with the
	// specified value.
	//   "EQUALS" - The operator matches if the field value equals the specified
	// value.
	//   "EQUALS_ANY" - The operator matches if the field value is any value.
	//   "STARTS_WITH" - The operator matches if the field value starts with the
	// specified value.
	Op string `json:"op,omitempty"`
	// Val: The value of the field.
	Val string `json:"val,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Op") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Op") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleRateLimitOptions struct {
	// BanDurationSec: Can only be specified if the action for the rule is
	// "rate_based_ban". If specified, determines the time (in seconds) the traffic
	// will continue to be banned by the rate limit after the rate falls below the
	// threshold.
	BanDurationSec int64 `json:"banDurationSec,omitempty"`
	// BanThreshold: Can only be specified if the action for the rule is
	// "rate_based_ban". If specified, the key will be banned for the configured
	// 'ban_duration_sec' when the number of requests that exceed the
	// 'rate_limit_threshold' also exceed this 'ban_threshold'.
	BanThreshold *SecurityPolicyRuleRateLimitOptionsThreshold `json:"banThreshold,omitempty"`
	// ConformAction: Action to take for requests that are under the configured
	// rate limit threshold. Valid option is "allow" only.
	ConformAction string `json:"conformAction,omitempty"`
	// EnforceOnKey: Determines the key to enforce the rate_limit_threshold on.
	// Possible values are: - ALL: A single rate limit threshold is applied to all
	// the requests matching this rule. This is the default value if "enforceOnKey"
	// is not configured. - IP: The source IP address of the request is the key.
	// Each IP has this limit enforced separately. - HTTP_HEADER: The value of the
	// HTTP header whose name is configured under "enforceOnKeyName". The key value
	// is truncated to the first 128 bytes of the header value. If no such header
	// is present in the request, the key type defaults to ALL. - XFF_IP: The first
	// IP address (i.e. the originating client IP address) specified in the list of
	// IPs under X-Forwarded-For HTTP header. If no such header is present or the
	// value is not a valid IP, the key defaults to the source IP address of the
	// request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose
	// name is configured under "enforceOnKeyName". The key value is truncated to
	// the first 128 bytes of the cookie value. If no such cookie is present in the
	// request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP
	// request. The key value is truncated to the first 128 bytes. - SNI: Server
	// name indication in the TLS session of the HTTPS request. The key value is
	// truncated to the first 128 bytes. The key type defaults to ALL on a HTTP
	// session. - REGION_CODE: The country/region from which the request
	// originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client
	// connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type
	// defaults to ALL. - USER_IP: The IP address of the originating client, which
	// is resolved based on "userIpRequestHeaders" configured with the security
	// policy. If there is no "userIpRequestHeaders" configuration or an IP address
	// cannot be resolved from it, the key type defaults to IP.
	//
	// Possible values:
	//   "ALL"
	//   "ALL_IPS"
	//   "HTTP_COOKIE"
	//   "HTTP_HEADER"
	//   "HTTP_PATH"
	//   "IP"
	//   "REGION_CODE"
	//   "SNI"
	//   "TLS_JA3_FINGERPRINT"
	//   "USER_IP"
	//   "XFF_IP"
	EnforceOnKey string `json:"enforceOnKey,omitempty"`
	// EnforceOnKeyConfigs: If specified, any combination of values of
	// enforce_on_key_type/enforce_on_key_name is treated as the key on which
	// ratelimit threshold/action is enforced. You can specify up to 3
	// enforce_on_key_configs. If enforce_on_key_configs is specified,
	// enforce_on_key must not be specified.
	EnforceOnKeyConfigs []*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `json:"enforceOnKeyConfigs,omitempty"`
	// EnforceOnKeyName: Rate limit key name applicable only for the following key
	// types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the
	// key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as
	// the key value.
	EnforceOnKeyName string `json:"enforceOnKeyName,omitempty"`
	// ExceedAction: Action to take for requests that are above the configured rate
	// limit threshold, to either deny with a specified HTTP response code, or
	// redirect to a different endpoint. Valid options are `deny(STATUS)`, where
	// valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where
	// the redirect parameters come from `exceedRedirectOptions` below. The
	// `redirect` action is only supported in Global Security Policies of type
	// CLOUD_ARMOR.
	ExceedAction string `json:"exceedAction,omitempty"`
	// ExceedActionRpcStatus: Specified gRPC response status for proxyless gRPC
	// requests that are above the configured rate limit threshold
	ExceedActionRpcStatus *SecurityPolicyRuleRateLimitOptionsRpcStatus `json:"exceedActionRpcStatus,omitempty"`
	// ExceedRedirectOptions: Parameters defining the redirect action that is used
	// as the exceed action. Cannot be specified if the exceed action is not
	// redirect. This field is only supported in Global Security Policies of type
	// CLOUD_ARMOR.
	ExceedRedirectOptions *SecurityPolicyRuleRedirectOptions `json:"exceedRedirectOptions,omitempty"`
	// RateLimitThreshold: Threshold at which to begin ratelimiting.
	RateLimitThreshold *SecurityPolicyRuleRateLimitOptionsThreshold `json:"rateLimitThreshold,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BanDurationSec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BanDurationSec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleRateLimitOptions) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleRateLimitOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct {
	// EnforceOnKeyName: Rate limit key name applicable only for the following key
	// types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the
	// key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as
	// the key value.
	EnforceOnKeyName string `json:"enforceOnKeyName,omitempty"`
	// EnforceOnKeyType: Determines the key to enforce the rate_limit_threshold on.
	// Possible values are: - ALL: A single rate limit threshold is applied to all
	// the requests matching this rule. This is the default value if
	// "enforceOnKeyConfigs" is not configured. - IP: The source IP address of the
	// request is the key. Each IP has this limit enforced separately. -
	// HTTP_HEADER: The value of the HTTP header whose name is configured under
	// "enforceOnKeyName". The key value is truncated to the first 128 bytes of the
	// header value. If no such header is present in the request, the key type
	// defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client
	// IP address) specified in the list of IPs under X-Forwarded-For HTTP header.
	// If no such header is present or the value is not a valid IP, the key
	// defaults to the source IP address of the request i.e. key type IP. -
	// HTTP_COOKIE: The value of the HTTP cookie whose name is configured under
	// "enforceOnKeyName". The key value is truncated to the first 128 bytes of the
	// cookie value. If no such cookie is present in the request, the key type
	// defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key
	// value is truncated to the first 128 bytes. - SNI: Server name indication in
	// the TLS session of the HTTPS request. The key value is truncated to the
	// first 128 bytes. The key type defaults to ALL on a HTTP session. -
	// REGION_CODE: The country/region from which the request originates. -
	// TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using
	// HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. -
	// USER_IP: The IP address of the originating client, which is resolved based
	// on "userIpRequestHeaders" configured with the security policy. If there is
	// no "userIpRequestHeaders" configuration or an IP address cannot be resolved
	// from it, the key type defaults to IP.
	//
	// Possible values:
	//   "ALL"
	//   "ALL_IPS"
	//   "HTTP_COOKIE"
	//   "HTTP_HEADER"
	//   "HTTP_PATH"
	//   "IP"
	//   "REGION_CODE"
	//   "SNI"
	//   "TLS_JA3_FINGERPRINT"
	//   "USER_IP"
	//   "XFF_IP"
	EnforceOnKeyType string `json:"enforceOnKeyType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnforceOnKeyName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnforceOnKeyName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecurityPolicyRuleRateLimitOptionsRpcStatus: Simplified google.rpc.Status
// type (omitting details).
type SecurityPolicyRuleRateLimitOptionsRpcStatus struct {
	// Code: The status code, which should be an enum value of google.rpc.Code.
	Code int64 `json:"code,omitempty"`
	// Message: A developer-facing error message, which should be in English.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleRateLimitOptionsRpcStatus) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleRateLimitOptionsRpcStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleRateLimitOptionsThreshold struct {
	// Count: Number of HTTP(S) requests for calculating the threshold.
	Count int64 `json:"count,omitempty"`
	// IntervalSec: Interval over which the threshold is computed.
	IntervalSec int64 `json:"intervalSec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleRateLimitOptionsThreshold) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleRateLimitOptionsThreshold
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyRuleRedirectOptions struct {
	// Target: Target for the redirect action. This is required if the type is
	// EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.
	Target string `json:"target,omitempty"`
	// Type: Type of the redirect action.
	//
	// Possible values:
	//   "EXTERNAL_302"
	//   "GOOGLE_RECAPTCHA"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Target") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Target") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyRuleRedirectOptions) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyRuleRedirectOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SecurityPolicyUserDefinedField struct {
	// Base: The base relative to which 'offset' is measured. Possible values are:
	// - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the
	// beginning of the IPv6 header. - TCP: Points to the beginning of the TCP
	// header, skipping over any IPv4 options or IPv6 extension headers. Not
	// present for non-first fragments. - UDP: Points to the beginning of the UDP
	// header, skipping over any IPv4 options or IPv6 extension headers. Not
	// present for non-first fragments. required
	//
	// Possible values:
	//   "IPV4"
	//   "IPV6"
	//   "TCP"
	//   "UDP"
	Base string `json:"base,omitempty"`
	// Mask: If specified, apply this mask (bitwise AND) to the field to ignore
	// bits before matching. Encoded as a hexadecimal number (starting with "0x").
	// The last byte of the field (in network byte order) corresponds to the least
	// significant byte of the mask.
	Mask string `json:"mask,omitempty"`
	// Name: The name of this field. Must be unique within the policy.
	Name string `json:"name,omitempty"`
	// Offset: Offset of the first byte of the field (in network byte order)
	// relative to 'base'.
	Offset int64 `json:"offset,omitempty"`
	// Size: Size of the field in bytes. Valid values: 1-4.
	Size int64 `json:"size,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Base") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Base") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecurityPolicyUserDefinedField) MarshalJSON() ([]byte, error) {
	type NoMethod SecurityPolicyUserDefinedField
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SecuritySettings: The authentication and authorization settings for a
// BackendService.
type SecuritySettings struct {
	// Authentication: [Deprecated] Use clientTlsPolicy instead.
	Authentication string `json:"authentication,omitempty"`
	// AuthenticationPolicy: [Deprecated] Authentication policy defines what
	// authentication methods can be accepted on backends, and if authenticated,
	// which method/certificate will set the request principal. request principal.
	AuthenticationPolicy *AuthenticationPolicy `json:"authenticationPolicy,omitempty"`
	// AuthorizationConfig: [Deprecated] Authorization config defines the Role
	// Based Access Control (RBAC) config. Authorization config defines the Role
	// Based Access Control (RBAC) config.
	AuthorizationConfig *AuthorizationConfig `json:"authorizationConfig,omitempty"`
	// AwsV4Authentication: The configuration needed to generate a signature for
	// access to private storage buckets that support AWS's Signature Version 4 for
	// authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG
	// backends.
	AwsV4Authentication *AWSV4Signature `json:"awsV4Authentication,omitempty"`
	// ClientTlsPolicy: Optional. A URL referring to a
	// networksecurity.ClientTlsPolicy resource that describes how clients should
	// authenticate with this service's backends. clientTlsPolicy only applies to a
	// global BackendService with the loadBalancingScheme set to
	// INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted.
	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
	// ClientTlsSettings: [Deprecated] TLS Settings for the backend service.
	ClientTlsSettings *ClientTlsSettings `json:"clientTlsSettings,omitempty"`
	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs) that
	// the client verifies during a mutual TLS handshake with an server/endpoint
	// for this BackendService. When the server presents its X.509 certificate to
	// the client, the client inspects the certificate's subjectAltName field. If
	// the field contains one of the specified values, the communication continues.
	// Otherwise, it fails. This additional check enables the client to verify that
	// the server is authorized to run the requested service. Note that the
	// contents of the server certificate's subjectAltName field are configured by
	// the Public Key Infrastructure which provisions server identities. Only
	// applies to a global BackendService with loadBalancingScheme set to
	// INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached
	// clientTlsPolicy with clientCertificate (mTLS mode).
	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Authentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Authentication") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SecuritySettings) MarshalJSON() ([]byte, error) {
	type NoMethod SecuritySettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SerialPortOutput: An instance serial console output.
type SerialPortOutput struct {
	// Contents: [Output Only] The contents of the console output.
	Contents string `json:"contents,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#serialPortOutput
	// for serial port output.
	Kind string `json:"kind,omitempty"`
	// Next: [Output Only] The position of the next byte of content, regardless of
	// whether the content exists, following the output returned in the `contents`
	// property. Use this value in the next request as the start parameter.
	Next int64 `json:"next,omitempty,string"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Start: The starting byte position of the output that was returned. This
	// should match the start parameter sent with the request. If the serial
	// console output exceeds the size of the buffer (1 MB), older output is
	// overwritten by newer content. The output start value will indicate the byte
	// position of the output that was returned, which might be different than the
	// `start` value that was specified in the request.
	Start int64 `json:"start,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Contents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Contents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SerialPortOutput) MarshalJSON() ([]byte, error) {
	type NoMethod SerialPortOutput
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ServerBinding struct {
	// Possible values:
	//   "RESTART_NODE_ON_ANY_SERVER" - Node may associate with any physical server
	// over its lifetime.
	//   "RESTART_NODE_ON_MINIMAL_SERVERS" - Node may associate with minimal
	// physical servers over its lifetime.
	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServerBinding) MarshalJSON() ([]byte, error) {
	type NoMethod ServerBinding
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServerTlsSettings: The TLS settings for the server.
type ServerTlsSettings struct {
	// ProxyTlsContext: Configures the mechanism to obtain security certificates
	// and identity information.
	ProxyTlsContext *TlsContext `json:"proxyTlsContext,omitempty"`
	// SubjectAltNames: A list of alternate names to verify the subject identity in
	// the certificate presented by the client.
	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
	// TlsMode: Indicates whether connections should be secured using TLS. The
	// value of this field determines how TLS is enforced. This field can be set to
	// one of the following: - SIMPLE Secure connections with standard TLS
	// semantics. - MUTUAL Secure connections to the backends using mutual TLS by
	// presenting client certificates for authentication.
	//
	// Possible values:
	//   "INVALID"
	//   "MUTUAL" - Secure connections to the backends using mutual TLS by
	// presenting client certificates for authentication.
	//   "SIMPLE" - Secure connections with standard TLS semantics.
	TlsMode string `json:"tlsMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProxyTlsContext") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProxyTlsContext") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServerTlsSettings) MarshalJSON() ([]byte, error) {
	type NoMethod ServerTlsSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAccount: A service account.
type ServiceAccount struct {
	// Email: Email address of the service account.
	Email string `json:"email,omitempty"`
	// Scopes: The list of scopes to be made available for this service account.
	Scopes []string `json:"scopes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Email") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAccount) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAccount
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAttachment: Represents a ServiceAttachment resource. A service
// attachment represents a service that a producer has exposed. It encapsulates
// the load balancer which fronts the service runs and a list of NAT IP ranges
// that the producers uses to represent the consumers connecting to the
// service.
type ServiceAttachment struct {
	// ConnectedEndpoints: [Output Only] An array of connections for all the
	// consumers connected to this service attachment.
	ConnectedEndpoints []*ServiceAttachmentConnectedEndpoint `json:"connectedEndpoints,omitempty"`
	// ConnectionPreference: The connection preference of service attachment. The
	// value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment
	// is one that always accepts the connection from consumer forwarding rules.
	//
	// Possible values:
	//   "ACCEPT_AUTOMATIC"
	//   "ACCEPT_MANUAL"
	//   "CONNECTION_PREFERENCE_UNSPECIFIED"
	ConnectionPreference string `json:"connectionPreference,omitempty"`
	// ConsumerAcceptLists: Specifies which consumer projects or networks are
	// allowed to connect to the service attachment. Each project or network has a
	// connection limit. A given service attachment can manage connections at
	// either the project or network level. Therefore, both the accept and reject
	// lists for a given service attachment must contain either only projects or
	// only networks.
	ConsumerAcceptLists []*ServiceAttachmentConsumerProjectLimit `json:"consumerAcceptLists,omitempty"`
	// ConsumerRejectLists: Specifies a list of projects or networks that are not
	// allowed to connect to this service attachment. The project can be specified
	// using its project ID or project number and the network can be specified
	// using its URL. A given service attachment can manage connections at either
	// the project or network level. Therefore, both the reject and accept lists
	// for a given service attachment must contain either only projects or only
	// networks.
	ConsumerRejectLists []string `json:"consumerRejectLists,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DomainNames: If specified, the domain name will be used during the
	// integration between the PSC connected endpoints and the Cloud DNS. For
	// example, this is a valid domain name: "p.mycompany.com.". Current max number
	// of domain names supported is 1.
	DomainNames []string `json:"domainNames,omitempty"`
	// EnableProxyProtocol: If true, enable the proxy protocol which is for
	// supplying client TCP/IP address data in TCP connections that traverse
	// proxies on their way to destination servers.
	EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a ServiceAttachment. An up-to-date fingerprint must
	// be provided in order to patch/update the ServiceAttachment; otherwise, the
	// request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make a get() request to retrieve the ServiceAttachment.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#serviceAttachment
	// for service attachments.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// NatSubnets: An array of URLs where each entry is the URL of a subnet
	// provided by the service producer to use for NAT in this service attachment.
	NatSubnets []string `json:"natSubnets,omitempty"`
	// ProducerForwardingRule: The URL of a forwarding rule with
	// loadBalancingScheme INTERNAL* that is serving the endpoint identified by
	// this service attachment.
	ProducerForwardingRule string `json:"producerForwardingRule,omitempty"`
	// PropagatedConnectionLimit: The number of consumer spokes that connected
	// Private Service Connect endpoints can be propagated to through Network
	// Connectivity Center. This limit lets the service producer limit how many
	// propagated Private Service Connect connections can be established to this
	// service attachment from a single consumer. If the connection preference of
	// the service attachment is ACCEPT_MANUAL, the limit applies to each project
	// or network that is listed in the consumer accept list. If the connection
	// preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies
	// to each project that contains a connected endpoint. If unspecified, the
	// default propagated connection limit is 250.
	PropagatedConnectionLimit int64 `json:"propagatedConnectionLimit,omitempty"`
	// PscServiceAttachmentId: [Output Only] An 128-bit global unique ID of the PSC
	// service attachment.
	PscServiceAttachmentId *Uint128 `json:"pscServiceAttachmentId,omitempty"`
	// ReconcileConnections: This flag determines whether a consumer accept/reject
	// list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC
	// endpoints. - If false, connection policy update will only affect existing
	// PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain
	// untouched regardless how the connection policy is modified . - If true,
	// update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For
	// example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project
	// is added to the reject list. For newly created service attachment, this
	// boolean defaults to false.
	ReconcileConnections bool `json:"reconcileConnections,omitempty"`
	// Region: [Output Only] URL of the region where the service attachment
	// resides. This field applies only to the region resource. You must specify
	// this field as part of the HTTP request URL. It is not settable as a field in
	// the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// TargetService: The URL of a service serving the endpoint identified by this
	// service attachment.
	TargetService string `json:"targetService,omitempty"`
	// TunnelingConfig: When a tunneling config is set on this service attachment
	// it will encapsulate traffic between consumer and producer. When tunneling is
	// enabled: - nat_subnets must be unset - enable_proxy_protocol must be false -
	// producer_forwarding_rule must be a L4 ILB. -
	TunnelingConfig *ServiceAttachmentTunnelingConfig `json:"tunnelingConfig,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ConnectedEndpoints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectedEndpoints") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachment) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAttachmentAggregatedList: Contains a list of
// ServiceAttachmentsScopedList.
type ServiceAttachmentAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of ServiceAttachmentsScopedList resources.
	Items map[string]ServiceAttachmentsScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ServiceAttachmentAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAttachmentAggregatedListWarning: [Output Only] Informational warning
// message.
type ServiceAttachmentAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ServiceAttachmentAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ServiceAttachmentAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAttachmentConnectedEndpoint: [Output Only] A connection connected to
// this service attachment.
type ServiceAttachmentConnectedEndpoint struct {
	// ConsumerNetwork: The url of the consumer network.
	ConsumerNetwork string `json:"consumerNetwork,omitempty"`
	// Endpoint: The url of a connected endpoint.
	Endpoint string `json:"endpoint,omitempty"`
	// PropagatedConnectionCount: The number of consumer Network Connectivity
	// Center spokes that the connected Private Service Connect endpoint has
	// propagated to.
	PropagatedConnectionCount int64 `json:"propagatedConnectionCount,omitempty"`
	// PscConnectionId: The PSC connection id of the connected endpoint.
	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
	// Status: The status of a connected endpoint to this service attachment.
	//
	// Possible values:
	//   "ACCEPTED" - The connection has been accepted by the producer.
	//   "CLOSED" - The connection has been closed by the producer.
	//   "NEEDS_ATTENTION" - The connection has been accepted by the producer, but
	// the producer needs to take further action before the forwarding rule can
	// serve traffic.
	//   "PENDING" - The connection is pending acceptance by the producer.
	//   "REJECTED" - The consumer is still connected but not using the connection.
	//   "STATUS_UNSPECIFIED"
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsumerNetwork") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsumerNetwork") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentConnectedEndpoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ServiceAttachmentConsumerProjectLimit struct {
	// ConnectionLimit: The value of the limit to set.
	ConnectionLimit int64 `json:"connectionLimit,omitempty"`
	// NetworkUrl: The network URL for the network to set the limit for.
	NetworkUrl string `json:"networkUrl,omitempty"`
	// ProjectIdOrNum: The project id or number for the project to set the limit
	// for.
	ProjectIdOrNum string `json:"projectIdOrNum,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConnectionLimit") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectionLimit") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentConsumerProjectLimit) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentConsumerProjectLimit
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ServiceAttachmentList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of ServiceAttachment resources.
	Items []*ServiceAttachment `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#serviceAttachment
	// for service attachments.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ServiceAttachmentListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentList) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAttachmentListWarning: [Output Only] Informational warning message.
type ServiceAttachmentListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ServiceAttachmentListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ServiceAttachmentListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAttachmentTunnelingConfig: Use to configure this PSC connection in
// tunneling mode. In tunneling mode traffic from consumer to producer will be
// encapsulated as it crosses the VPC boundary and traffic from producer to
// consumer will be decapsulated in the same manner.
type ServiceAttachmentTunnelingConfig struct {
	// EncapsulationProfile: Specify the encapsulation protocol and what metadata
	// to include in incoming encapsulated packet headers.
	//
	// Possible values:
	//   "GENEVE_SECURITY_V1" - Use GENEVE encapsulation protocol and include the
	// SECURITY_V1 set of GENEVE headers.
	//   "UNSPECIFIED_ENCAPSULATION_PROFILE"
	EncapsulationProfile string `json:"encapsulationProfile,omitempty"`
	// RoutingMode: How this Service Attachment will treat traffic sent to the
	// tunnel_ip, destined for the consumer network.
	//
	// Possible values:
	//   "PACKET_INJECTION" - Traffic sent to this service attachment will be
	// reinjected into the consumer network.
	//   "STANDARD_ROUTING" - Response traffic, after de-encapsulation, will be
	// returned to the client.
	//   "UNSPECIFIED_ROUTING_MODE"
	RoutingMode string `json:"routingMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EncapsulationProfile") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EncapsulationProfile") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentTunnelingConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentTunnelingConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ServiceAttachmentsScopedList struct {
	// ServiceAttachments: A list of ServiceAttachments contained in this scope.
	ServiceAttachments []*ServiceAttachment `json:"serviceAttachments,omitempty"`
	// Warning: Informational warning which replaces the list of service
	// attachments when the list is empty.
	Warning *ServiceAttachmentsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ServiceAttachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ServiceAttachments") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAttachmentsScopedListWarning: Informational warning which replaces
// the list of service attachments when the list is empty.
type ServiceAttachmentsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ServiceAttachmentsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ServiceAttachmentsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceAttachmentsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceIntegrationSpec: Specifies the parameters to configure an integration
// with instances.
type ServiceIntegrationSpec struct {
	BackupDr *ServiceIntegrationSpecBackupDRSpec `json:"backupDr,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackupDr") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackupDr") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceIntegrationSpec) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceIntegrationSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceIntegrationSpecBackupDRSpec: Specifies parameters to Backup and DR to
// attach a BackupPlan to a compute instance for managed VM backup.
type ServiceIntegrationSpecBackupDRSpec struct {
	// Plan: The BackupPlan resource to attach to the instance. Specified as a
	// resource reference in instances, and regional instance templates, and as
	// just the plan name in global instance templates
	Plan string `json:"plan,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Plan") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Plan") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ServiceIntegrationSpecBackupDRSpec) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceIntegrationSpecBackupDRSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SetCommonInstanceMetadataOperationMetadata struct {
	// ClientOperationId: [Output Only] The client operation id.
	ClientOperationId string `json:"clientOperationId,omitempty"`
	// PerLocationOperations: [Output Only] Status information per location
	// (location name is key). Example key: zones/us-central1-a
	PerLocationOperations map[string]SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo `json:"perLocationOperations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClientOperationId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClientOperationId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SetCommonInstanceMetadataOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod SetCommonInstanceMetadataOperationMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo struct {
	// Error: [Output Only] If state is `ABANDONED` or `FAILED`, this field is
	// populated.
	Error *Status `json:"error,omitempty"`
	// State: [Output Only] Status of the action, which can be one of the
	// following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
	//
	// Possible values:
	//   "ABANDONED" - Operation not tracked in this location e.g. zone is marked
	// as DOWN.
	//   "DONE" - Operation has completed successfully.
	//   "FAILED" - Operation is in an error state.
	//   "PROPAGATED" - Operation is confirmed to be in the location.
	//   "PROPAGATING" - Operation is not yet confirmed to have been created in the
	// location.
	//   "UNSPECIFIED"
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Error") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo) MarshalJSON() ([]byte, error) {
	type NoMethod SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShareSettings: The share setting for reservations and sole tenancy node
// groups.
type ShareSettings struct {
	// FolderMap: A map of folder id and folder config to specify consumer projects
	// for this shared-reservation. This is only valid when share_type's value is
	// DIRECT_PROJECTS_UNDER_SPECIFIC_FOLDERS. Folder id should be a string of
	// number, and without "folders/" prefix.
	FolderMap map[string]ShareSettingsFolderConfig `json:"folderMap,omitempty"`
	// ProjectMap: A map of project id and project config. This is only valid when
	// share_type's value is SPECIFIC_PROJECTS.
	ProjectMap map[string]ShareSettingsProjectConfig `json:"projectMap,omitempty"`
	// Projects: A List of Project names to specify consumer projects for this
	// shared-reservation. This is only valid when share_type's value is
	// SPECIFIC_PROJECTS.
	Projects []string `json:"projects,omitempty"`
	// ShareType: Type of sharing for this shared-reservation
	//
	// Possible values:
	//   "DIRECT_PROJECTS_UNDER_SPECIFIC_FOLDERS" - Shared-reservation is open to
	// direct child projects of specific folders.
	//   "LOCAL" - Default value.
	//   "ORGANIZATION" - Shared-reservation is open to entire Organization
	//   "SHARE_TYPE_UNSPECIFIED" - Default value. This value is unused.
	//   "SPECIFIC_PROJECTS" - Shared-reservation is open to specific projects
	ShareType string `json:"shareType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FolderMap") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FolderMap") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShareSettings) MarshalJSON() ([]byte, error) {
	type NoMethod ShareSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShareSettingsFolderConfig: Config for each folder in the share settings.
type ShareSettingsFolderConfig struct {
	// FolderId: The folder ID, should be same as the key of this folder config in
	// the parent map. Folder id should be a string of number, and without
	// "folders/" prefix.
	FolderId string `json:"folderId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FolderId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FolderId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShareSettingsFolderConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ShareSettingsFolderConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShareSettingsProjectConfig: Config for each project in the share settings.
type ShareSettingsProjectConfig struct {
	// ProjectId: The project ID, should be same as the key of this project config
	// in the parent map.
	ProjectId string `json:"projectId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProjectId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProjectId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShareSettingsProjectConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ShareSettingsProjectConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedInstanceConfig: A set of Shielded Instance options.
type ShieldedInstanceConfig struct {
	// EnableIntegrityMonitoring: Defines whether the instance has integrity
	// monitoring enabled. Enabled by default.
	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
	// EnableSecureBoot: Defines whether the instance has Secure Boot enabled.
	// Disabled by default.
	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
	// EnableVtpm: Defines whether the instance has the vTPM enabled. Enabled by
	// default.
	EnableVtpm bool `json:"enableVtpm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableIntegrityMonitoring")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableIntegrityMonitoring") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedInstanceConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedInstanceIdentity: A Shielded Instance Identity.
type ShieldedInstanceIdentity struct {
	// EccP256EncryptionKey: An Endorsement Key (EK) made by the ECC P256 algorithm
	// issued to the Shielded Instance's vTPM.
	EccP256EncryptionKey *ShieldedInstanceIdentityEntry `json:"eccP256EncryptionKey,omitempty"`
	// EccP256SigningKey: An Attestation Key (AK) made by the ECC P256 algorithm
	// issued to the Shielded Instance's vTPM.
	EccP256SigningKey *ShieldedInstanceIdentityEntry `json:"eccP256SigningKey,omitempty"`
	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm issued
	// to the Shielded Instance's vTPM.
	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
	// Kind: [Output Only] Type of the resource. Always
	// compute#shieldedInstanceIdentity for shielded Instance identity entry.
	Kind string `json:"kind,omitempty"`
	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm issued to
	// the Shielded Instance's vTPM.
	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "EccP256EncryptionKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EccP256EncryptionKey") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedInstanceIdentity
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
type ShieldedInstanceIdentityEntry struct {
	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
	EkCert string `json:"ekCert,omitempty"`
	// EkPub: A PEM-encoded public key.
	EkPub string `json:"ekPub,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EkCert") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EkCert") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedInstanceIdentityEntry
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedInstanceIntegrityPolicy: The policy describes the baseline against
// which Instance boot integrity is measured.
type ShieldedInstanceIntegrityPolicy struct {
	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using the
	// measurements from the VM instance's most recent boot.
	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedInstanceIntegrityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedVmConfig: A set of Shielded VM options.
type ShieldedVmConfig struct {
	// EnableIntegrityMonitoring: Defines whether the instance has integrity
	// monitoring enabled.
	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
	// EnableSecureBoot: Defines whether the instance has Secure Boot enabled.
	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
	// EnableVtpm: Defines whether the instance has the vTPM enabled.
	EnableVtpm bool `json:"enableVtpm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableIntegrityMonitoring")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableIntegrityMonitoring") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedVmConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedVmConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedVmIdentity: A Shielded VM Identity.
type ShieldedVmIdentity struct {
	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's vTPM.
	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#shieldedVmIdentity
	// for shielded VM identity entry.
	Kind string `json:"kind,omitempty"`
	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EncryptionKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedVmIdentity
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
type ShieldedVmIdentityEntry struct {
	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
	EkCert string `json:"ekCert,omitempty"`
	// EkPub: A PEM-encoded public key.
	EkPub string `json:"ekPub,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EkCert") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EkCert") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedVmIdentityEntry
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ShieldedVmIntegrityPolicy: The policy describes the baseline against which
// VM instance boot integrity is measured.
type ShieldedVmIntegrityPolicy struct {
	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using the
	// measurements from the VM instance's most recent boot.
	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ShieldedVmIntegrityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SignedUrlKey: Represents a customer-supplied Signing Key used by Cloud CDN
// Signed URLs
type SignedUrlKey struct {
	// KeyName: Name of the key. The name must be 1-63 characters long, and comply
	// with RFC1035. Specifically, the name must be 1-63 characters long and match
	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
	// character must be a lowercase letter, and all following characters must be a
	// dash, lowercase letter, or digit, except the last character, which cannot be
	// a dash.
	KeyName string `json:"keyName,omitempty"`
	// KeyValue: 128-bit key value used for signing the URL. The key value must be
	// a valid RFC 4648 Section 5 base64url encoded string.
	KeyValue string `json:"keyValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KeyName") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KeyName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SignedUrlKey) MarshalJSON() ([]byte, error) {
	type NoMethod SignedUrlKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Snapshot: Represents a Persistent Disk Snapshot resource. You can use
// snapshots to back up data on a regular interval. For more information, read
// Creating persistent disk snapshots.
type Snapshot struct {
	// Architecture: [Output Only] The architecture of the snapshot. Valid values
	// are ARM64 or X86_64.
	//
	// Possible values:
	//   "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not
	// set.
	//   "ARM64" - Machines with architecture ARM64
	//   "X86_64" - Machines with architecture X86_64
	Architecture string `json:"architecture,omitempty"`
	// AutoCreated: [Output Only] Set to true if snapshots are automatically
	// created by applying resource policy on the target disk.
	AutoCreated bool `json:"autoCreated,omitempty"`
	// ChainName: Creates the new snapshot in the snapshot chain labeled with the
	// specified name. The chain name must be 1-63 characters long and comply with
	// RFC1035. This is an uncommon option only for advanced service owners who
	// needs to create separate snapshot chains, for example, for chargeback
	// tracking. When you describe your snapshot resource, this field is visible
	// only if it has a non-empty value.
	ChainName string `json:"chainName,omitempty"`
	// CreationSizeBytes: [Output Only] Size in bytes of the snapshot at creation
	// time.
	CreationSizeBytes int64 `json:"creationSizeBytes,omitempty,string"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
	// snapshot to a disk.
	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
	// EnableConfidentialCompute: Whether this snapshot is created from a
	// confidential compute mode disk. [Output Only]: This field is not set by
	// user, but from source disk.
	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
	// GuestFlush: [Input Only] Whether to attempt an application consistent
	// snapshot by informing the OS to prepare for the snapshot process.
	GuestFlush bool `json:"guestFlush,omitempty"`
	// GuestOsFeatures: [Output Only] A list of features to enable on the guest
	// operating system. Applicable only for bootable images. Read Enabling guest
	// operating system features to see a list of available options.
	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
	// Snapshot resources.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// snapshot, which is essentially a hash of the labels set used for optimistic
	// locking. The fingerprint is initially generated by Compute Engine and
	// changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a snapshot.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels to apply to this snapshot. These can be later modified by the
	// setLabels method. Label values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// LicenseCodes: [Output Only] Integer license codes indicating which licenses
	// are attached to this snapshot.
	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
	// Licenses: [Output Only] A list of public visible licenses that apply to this
	// snapshot. This can be because the original image had licenses attached (such
	// as a Windows image).
	Licenses []string `json:"licenses,omitempty"`
	// LocationHint: An opaque location hint used to place the snapshot close to
	// other resources. This field is for use by internal tools that use the public
	// API.
	LocationHint string `json:"locationHint,omitempty"`
	// MaxRetentionDays: Number of days the snapshot should be retained before
	// being deleted automatically.
	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
	// Name: Name of the resource; provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] URL of the region where the snapshot resides. Only
	// applicable for regional snapshots.
	Region string `json:"region,omitempty"`
	// ResourceStatus: [Output only] ResourceStatus of the Snapshot resource
	ResourceStatus *SnapshotResourceStatus `json:"resourceStatus,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SnapshotEncryptionKey: Encrypts the snapshot using a customer-supplied
	// encryption key. After you encrypt a snapshot using a customer-supplied key,
	// you must provide the same key if you use the snapshot later. For example,
	// you must provide the encryption key when you create a disk from the
	// encrypted snapshot in a future request. Customer-supplied encryption keys do
	// not protect access to metadata of the snapshot. If you do not provide an
	// encryption key when creating the snapshot, then the snapshot will be
	// encrypted using an automatically generated key and you do not need to
	// provide a key to use the snapshot later.
	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
	// SnapshotType: Indicates the type of the snapshot.
	//
	// Possible values:
	//   "ARCHIVE"
	//   "STANDARD"
	SnapshotType string `json:"snapshotType,omitempty"`
	// SourceDisk: The source disk used to create this snapshot.
	SourceDisk string `json:"sourceDisk,omitempty"`
	// SourceDiskEncryptionKey: The customer-supplied encryption key of the source
	// disk. Required if the source disk is protected by a customer-supplied
	// encryption key.
	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
	// SourceDiskForRecoveryCheckpoint: The source disk whose recovery checkpoint
	// will be used to create this snapshot.
	SourceDiskForRecoveryCheckpoint string `json:"sourceDiskForRecoveryCheckpoint,omitempty"`
	// SourceDiskId: [Output Only] The ID value of the disk used to create this
	// snapshot. This value may be used to determine whether the snapshot was taken
	// from the current or a previous instance of a given disk name.
	SourceDiskId string `json:"sourceDiskId,omitempty"`
	// SourceInstantSnapshot: The source instant snapshot used to create this
	// snapshot. You can provide this as a partial or full URL to the resource. For
	// example, the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /instantSnapshots/instantSnapshot -
	// projects/project/zones/zone/instantSnapshots/instantSnapshot -
	// zones/zone/instantSnapshots/instantSnapshot
	SourceInstantSnapshot string `json:"sourceInstantSnapshot,omitempty"`
	// SourceInstantSnapshotEncryptionKey: Customer provided encryption key when
	// creating Snapshot from Instant Snapshot.
	SourceInstantSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceInstantSnapshotEncryptionKey,omitempty"`
	// SourceInstantSnapshotId: [Output Only] The unique ID of the instant snapshot
	// used to create this snapshot. This value identifies the exact instant
	// snapshot that was used to create this persistent disk. For example, if you
	// created the persistent disk from an instant snapshot that was later deleted
	// and recreated under the same name, the source instant snapshot ID would
	// identify the exact instant snapshot that was used.
	SourceInstantSnapshotId string `json:"sourceInstantSnapshotId,omitempty"`
	// SourceSnapshotSchedulePolicy: [Output Only] URL of the resource policy which
	// created this scheduled snapshot.
	SourceSnapshotSchedulePolicy string `json:"sourceSnapshotSchedulePolicy,omitempty"`
	// SourceSnapshotSchedulePolicyId: [Output Only] ID of the resource policy
	// which created this scheduled snapshot.
	SourceSnapshotSchedulePolicyId string `json:"sourceSnapshotSchedulePolicyId,omitempty"`
	// Status: [Output Only] The status of the snapshot. This can be CREATING,
	// DELETING, FAILED, READY, or UPLOADING.
	//
	// Possible values:
	//   "CREATING" - Snapshot creation is in progress.
	//   "DELETING" - Snapshot is currently being deleted.
	//   "FAILED" - Snapshot creation failed.
	//   "READY" - Snapshot has been created successfully.
	//   "UPLOADING" - Snapshot is being uploaded.
	Status string `json:"status,omitempty"`
	// StorageBytes: [Output Only] A size of the storage used by the snapshot. As
	// snapshots share storage, this number is expected to change with snapshot
	// creation/deletion.
	StorageBytes int64 `json:"storageBytes,omitempty,string"`
	// StorageBytesStatus: [Output Only] An indicator whether storageBytes is in a
	// stable state or it is being adjusted as a result of shared storage
	// reallocation. This status can either be UPDATING, meaning the size of the
	// snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot
	// is up-to-date.
	//
	// Possible values:
	//   "UPDATING"
	//   "UP_TO_DATE"
	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
	// StorageLocations: Cloud Storage bucket storage location of the snapshot
	// (regional or multi-regional).
	StorageLocations []string `json:"storageLocations,omitempty"`
	// UserLicenses: [Output Only] A list of user provided licenses represented by
	// a list of URLs to the license resource.
	UserLicenses []string `json:"userLicenses,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Architecture") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Architecture") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Snapshot) MarshalJSON() ([]byte, error) {
	type NoMethod Snapshot
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotAggregatedList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SnapshotsScopedList resources.
	Items map[string]SnapshotsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#snapshotAggregatedList
	// for aggregated lists of snapshots.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SnapshotAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SnapshotAggregatedListWarning: [Output Only] Informational warning message.
type SnapshotAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SnapshotAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SnapshotList: Contains a list of Snapshot resources.
type SnapshotList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Snapshot resources.
	Items []*Snapshot `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SnapshotListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotList) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SnapshotListWarning: [Output Only] Informational warning message.
type SnapshotListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SnapshotListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotResourceStatus struct {
	// ScheduledDeletionTime: [Output only] Scheduled deletion time of the
	// snapshot. The snapshot will be deleted by the at any point within one hour
	// after the deletion time.
	ScheduledDeletionTime string `json:"scheduledDeletionTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ScheduledDeletionTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ScheduledDeletionTime") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotSettings struct {
	// AccessLocation: (Regional snapshots use only)Policy of which location is
	// allowed to access snapshot.
	AccessLocation *SnapshotSettingsAccessLocation `json:"accessLocation,omitempty"`
	// StorageLocation: Policy of which storage location is going to be resolved,
	// and additional data that particularizes how the policy is going to be
	// carried out.
	StorageLocation *SnapshotSettingsStorageLocationSettings `json:"storageLocation,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AccessLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessLocation") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotSettings) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotSettingsAccessLocation struct {
	// Locations: List of regions that can restore a regional snapshot from the
	// current region
	Locations map[string]SnapshotSettingsAccessLocationAccessLocationPreference `json:"locations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Locations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotSettingsAccessLocation) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotSettingsAccessLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SnapshotSettingsAccessLocationAccessLocationPreference: A structure for
// specifying an allowed target region.
type SnapshotSettingsAccessLocationAccessLocationPreference struct {
	// Region: Accessible region name
	Region string `json:"region,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Region") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Region") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotSettingsAccessLocationAccessLocationPreference) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotSettingsAccessLocationAccessLocationPreference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotSettingsStorageLocationSettings struct {
	// Locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be stored
	// in the locations listed in this field. Keys are Cloud Storage bucket
	// locations. Only one location can be specified.
	Locations map[string]SnapshotSettingsStorageLocationSettingsStorageLocationPreference `json:"locations,omitempty"`
	// Policy: The chosen location policy.
	//
	// Possible values:
	//   "LOCAL_REGION" - Store snapshot in the same region as with the originating
	// disk. No additional parameters are needed.
	//   "NEAREST_MULTI_REGION" - Store snapshot in the nearest multi region Cloud
	// Storage bucket, relative to the originating disk. No additional parameters
	// are needed.
	//   "SPECIFIC_LOCATIONS" - Store snapshot in the specific locations, as
	// specified by the user. The list of regions to store must be defined under
	// the `locations` field.
	//   "STORAGE_LOCATION_POLICY_UNSPECIFIED"
	Policy string `json:"policy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Locations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotSettingsStorageLocationSettings) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotSettingsStorageLocationSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SnapshotSettingsStorageLocationSettingsStorageLocationPreference: A
// structure for specifying storage locations.
type SnapshotSettingsStorageLocationSettingsStorageLocationPreference struct {
	// Name: Name of the location. It should be one of the Cloud Storage buckets.
	// Only one location can be specified.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotSettingsStorageLocationSettingsStorageLocationPreference) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotSettingsStorageLocationSettingsStorageLocationPreference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotsScopedList struct {
	// Snapshots: [Output Only] A list of snapshots contained in this scope.
	Snapshots []*Snapshot `json:"snapshots,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// snapshots when the list is empty.
	Warning *SnapshotsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Snapshots") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Snapshots") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SnapshotsScopedListWarning: [Output Only] Informational warning which
// replaces the list of snapshots when the list is empty.
type SnapshotsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SnapshotsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SnapshotsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SourceDiskEncryptionKey struct {
	// DiskEncryptionKey: The customer-supplied encryption key of the source disk.
	// Required if the source disk is protected by a customer-supplied encryption
	// key.
	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
	// SourceDisk: URL of the disk attached to the source instance. This can be a
	// full or valid partial URL. For example, the following are valid values: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk
	SourceDisk string `json:"sourceDisk,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
	type NoMethod SourceDiskEncryptionKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SourceInstanceParams: A specification of the parameters to use when creating
// the instance template from a source instance.
type SourceInstanceParams struct {
	// DiskConfigs: Attached disks configuration. If not provided, defaults are
	// applied: For boot disk and any other R/W disks, the source images for each
	// disk will be used. For read-only disks, they will be attached in read-only
	// mode. Local SSD disks will be created as blank volumes.
	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskConfigs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SourceInstanceParams) MarshalJSON() ([]byte, error) {
	type NoMethod SourceInstanceParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SourceInstanceProperties: DEPRECATED: Please use compute#instanceProperties
// instead. New properties will not be added to this field.
type SourceInstanceProperties struct {
	// CanIpForward: Enables instances created based on this machine image to send
	// packets with source IP addresses other than their own and receive packets
	// with destination IP addresses other than their own. If these instances will
	// be used as an IP gateway or it will be set as the next-hop in a Route
	// resource, specify true. If unsure, leave this set to false. See the Enable
	// IP forwarding documentation for more information.
	CanIpForward bool `json:"canIpForward,omitempty"`
	// DeletionProtection: Whether the instance created from this machine image
	// should be protected against deletion.
	DeletionProtection bool `json:"deletionProtection,omitempty"`
	// Description: An optional text description for the instances that are created
	// from this machine image.
	Description string `json:"description,omitempty"`
	// Disks: An array of disks that are associated with the instances that are
	// created from this machine image.
	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
	// GuestAccelerators: A list of guest accelerator cards' type and count to use
	// for instances created from this machine image.
	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
	// KeyRevocationActionType: KeyRevocationActionType of the instance. Supported
	// options are "STOP" and "NONE". The default value is "NONE" if it is not
	// specified.
	//
	// Possible values:
	//   "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is
	// unused.
	//   "NONE" - Indicates user chose no operation.
	//   "STOP" - Indicates user chose to opt for VM shutdown on key revocation.
	KeyRevocationActionType string `json:"keyRevocationActionType,omitempty"`
	// Labels: Labels to apply to instances that are created from this machine
	// image.
	Labels map[string]string `json:"labels,omitempty"`
	// MachineType: The machine type to use for instances that are created from
	// this machine image.
	MachineType string `json:"machineType,omitempty"`
	// Metadata: The metadata key/value pairs to assign to instances that are
	// created from this machine image. These pairs can consist of custom metadata
	// or predefined keys. See Project and instance metadata for more information.
	Metadata *Metadata `json:"metadata,omitempty"`
	// MinCpuPlatform: Minimum cpu/platform to be used by instances created from
	// this machine image. The instance may be scheduled on the specified or newer
	// cpu/platform. Applicable values are the friendly names of CPU platforms,
	// such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
	// Bridge". For more information, read Specifying a Minimum CPU Platform.
	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
	// NetworkInterfaces: An array of network access configurations for this
	// interface.
	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
	// PostKeyRevocationActionType: PostKeyRevocationActionType of the instance.
	//
	// Possible values:
	//   "NOOP" - Indicates user chose no operation.
	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value
	// is unused.
	//   "SHUTDOWN" - Indicates user chose to opt for VM shutdown on key
	// revocation.
	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
	// Scheduling: Specifies the scheduling options for the instances that are
	// created from this machine image.
	Scheduling *Scheduling `json:"scheduling,omitempty"`
	// ServiceAccounts: A list of service accounts with specified scopes. Access
	// tokens for these service accounts are available to the instances that are
	// created from this machine image. Use metadata queries to obtain the access
	// tokens for these instances.
	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
	// Tags: A list of tags to apply to the instances that are created from this
	// machine image. The tags identify valid sources or targets for network
	// firewalls. The setTags method can modify this list of tags. Each tag within
	// the list must comply with RFC1035.
	Tags *Tags `json:"tags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanIpForward") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SourceInstanceProperties) MarshalJSON() ([]byte, error) {
	type NoMethod SourceInstanceProperties
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslCertificate: Represents an SSL certificate resource. Google Compute
// Engine has two SSL certificate resources: * Global
// (/compute/docs/reference/rest/alpha/sslCertificates) * Regional
// (/compute/docs/reference/rest/alpha/regionSslCertificates) The global SSL
// certificates (sslCertificates) are used by: - Global external Application
// Load Balancers - Classic Application Load Balancers - Proxy Network Load
// Balancers (with target SSL proxies) The regional SSL certificates
// (regionSslCertificates) are used by: - Regional external Application Load
// Balancers - Regional internal Application Load Balancers Optionally,
// certificate file contents that you upload can contain a set of up to five
// PEM-encoded certificates. The API call creates an object (sslCertificate)
// that holds this data. You can use SSL keys and certificates to secure
// connections to a load balancer. For more information, read Creating and
// using SSL certificates, SSL certificates quotas and limits, and
// Troubleshooting SSL certificates.
type SslCertificate struct {
	// Certificate: A value read into memory from a certificate file. The
	// certificate file must be in PEM format. The certificate chain must be no
	// greater than 5 certs long. The chain must include at least one intermediate
	// cert.
	Certificate string `json:"certificate,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
	ExpireTime string `json:"expireTime,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#sslCertificate for
	// SSL certificates.
	Kind string `json:"kind,omitempty"`
	// Managed: Configuration and status of a managed SSL certificate.
	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// PrivateKey: A value read into memory from a write-only private key file. The
	// private key file must be in PEM format. For security, only insert requests
	// include this field.
	PrivateKey string `json:"privateKey,omitempty"`
	// Region: [Output Only] URL of the region where the regional SSL Certificate
	// resides. This field is not applicable to global SSL Certificate.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SelfManaged: Configuration and status of a self-managed SSL certificate.
	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
	// SubjectAlternativeNames: [Output Only] Domains associated with the
	// certificate via Subject Alternative Name.
	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
	// Type: (Optional) Specifies the type of SSL certificate, either
	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
	// self-managed and the fields certificate and private_key are used.
	//
	// Possible values:
	//   "MANAGED" - Google-managed SSLCertificate.
	//   "SELF_MANAGED" - Certificate uploaded by user.
	//   "TYPE_UNSPECIFIED"
	Type string `json:"type,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Certificate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Certificate") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificate) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificate
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslCertificateAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SslCertificatesScopedList resources.
	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslCertificateAggregatedListWarning: [Output Only] Informational warning
// message.
type SslCertificateAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslCertificateAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslCertificateList: Contains a list of SslCertificate resources.
type SslCertificateList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SslCertificate resources.
	Items []*SslCertificate `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SslCertificateListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateList) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslCertificateListWarning: [Output Only] Informational warning message.
type SslCertificateListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SslCertificateListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslCertificateListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslCertificateManagedSslCertificate: Configuration and status of a managed
// SSL certificate.
type SslCertificateManagedSslCertificate struct {
	// DomainStatus: [Output only] Detailed statuses of the domains specified for
	// managed certificate resource.
	DomainStatus map[string]string `json:"domainStatus,omitempty"`
	// Domains: The domains for which a managed SSL certificate will be generated.
	// Each Google-managed SSL certificate supports up to the maximum number of
	// domains per Google-managed SSL certificate
	// (/load-balancing/docs/quotas#ssl_certificates).
	Domains []string `json:"domains,omitempty"`
	// Status: [Output only] Status of the managed certificate resource.
	//
	// Possible values:
	//   "ACTIVE" - The certificate management is working, and a certificate has
	// been provisioned.
	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
	//   "PROVISIONING" - The certificate management is working. GCP will attempt
	// to provision the first certificate.
	//   "PROVISIONING_FAILED" - Certificate provisioning failed due to an issue
	// with the DNS or load balancing configuration. For details of which domain
	// failed, consult domain_status field.
	//   "PROVISIONING_FAILED_PERMANENTLY" - Certificate provisioning failed due to
	// an issue with the DNS or load balancing configuration. It won't be retried.
	// To try again delete and create a new managed SslCertificate resource. For
	// details of which domain failed, consult domain_status field.
	//   "RENEWAL_FAILED" - Renewal of the certificate has failed due to an issue
	// with the DNS or load balancing configuration. The existing cert is still
	// serving; however, it will expire shortly. To provision a renewed
	// certificate, delete and create a new managed SslCertificate resource. For
	// details on which domain failed, consult domain_status field.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DomainStatus") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateManagedSslCertificate
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslCertificateSelfManagedSslCertificate: Configuration and status of a
// self-managed SSL certificate.
type SslCertificateSelfManagedSslCertificate struct {
	// Certificate: A local certificate file. The certificate must be in PEM
	// format. The certificate chain must be no greater than 5 certs long. The
	// chain must include at least one intermediate cert.
	Certificate string `json:"certificate,omitempty"`
	// PrivateKey: A write-only private key in PEM format. Only insert requests
	// will include this field.
	PrivateKey string `json:"privateKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Certificate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Certificate") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificateSelfManagedSslCertificate
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslCertificatesScopedList struct {
	// SslCertificates: List of SslCertificates contained in this scope.
	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SslCertificates") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificatesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslCertificatesScopedListWarning: Informational warning which replaces the
// list of backend services when the list is empty.
type SslCertificatesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificatesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslCertificatesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SslCertificatesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPoliciesAggregatedList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SslPoliciesScopedList resources.
	Items map[string]SslPoliciesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#sslPolicyAggregatedList
	// for lists of SSL Policies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SslPoliciesAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslPoliciesAggregatedListWarning: [Output Only] Informational warning
// message.
type SslPoliciesAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SslPoliciesAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPoliciesAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPoliciesList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SslPolicy resources.
	Items []*SslPolicy `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#sslPoliciesList for
	// lists of sslPolicies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SslPoliciesListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesList) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslPoliciesListWarning: [Output Only] Informational warning message.
type SslPoliciesListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPoliciesListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPoliciesListAvailableFeaturesResponse struct {
	Features []string `json:"features,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Features") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Features") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesListAvailableFeaturesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPoliciesScopedList struct {
	// SslPolicies: A list of SslPolicies contained in this scope.
	SslPolicies []*SslPolicy `json:"sslPolicies,omitempty"`
	// Warning: Informational warning which replaces the list of SSL policies when
	// the list is empty.
	Warning *SslPoliciesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SslPolicies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SslPolicies") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslPoliciesScopedListWarning: Informational warning which replaces the list
// of SSL policies when the list is empty.
type SslPoliciesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SslPoliciesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPoliciesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SslPoliciesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SslPolicy: Represents an SSL Policy resource. Use SSL policies to control
// SSL features, such as versions and cipher suites, that are offered by
// Application Load Balancers and proxy Network Load Balancers. For more
// information, read SSL policies overview.
type SslPolicy struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomFeatures: A list of features enabled when the selected profile is
	// CUSTOM. The method returns the set of features that can be specified in this
	// list. This field must be empty if the profile is not CUSTOM.
	CustomFeatures []string `json:"customFeatures,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// EnabledFeatures: [Output Only] The list of features enabled in the SSL
	// policy.
	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a SslPolicy. An up-to-date fingerprint must be
	// provided in order to update the SslPolicy, otherwise the request will fail
	// with error 412 conditionNotMet. To see the latest fingerprint, make a get()
	// request to retrieve an SslPolicy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor SSL
	// policies.
	Kind string `json:"kind,omitempty"`
	// MinTlsVersion: The minimum version of SSL protocol that can be used by the
	// clients to establish a connection with the load balancer. This can be one of
	// TLS_1_0, TLS_1_1, TLS_1_2.
	//
	// Possible values:
	//   "TLS_1_0" - TLS 1.0
	//   "TLS_1_1" - TLS 1.1
	//   "TLS_1_2" - TLS 1.2
	MinTlsVersion string `json:"minTlsVersion,omitempty"`
	// Name: Name of the resource. The name must be 1-63 characters long, and
	// comply with RFC1035. Specifically, the name must be 1-63 characters long and
	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
	// first character must be a lowercase letter, and all following characters
	// must be a dash, lowercase letter, or digit, except the last character, which
	// cannot be a dash.
	Name string `json:"name,omitempty"`
	// Profile: Profile specifies the set of SSL features that can be used by the
	// load balancer when negotiating SSL with clients. This can be one of
	// COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL
	// features to enable must be specified in the customFeatures field.
	//
	// Possible values:
	//   "COMPATIBLE" - Compatible profile. Allows the broadset set of clients,
	// even those which support only out-of-date SSL features to negotiate with the
	// load balancer.
	//   "CUSTOM" - Custom profile. Allow only the set of allowed SSL features
	// specified in the customFeatures field.
	//   "MODERN" - Modern profile. Supports a wide set of SSL features, allowing
	// modern clients to negotiate SSL with the load balancer.
	//   "RESTRICTED" - Restricted profile. Supports a reduced set of SSL features,
	// intended to meet stricter compliance requirements.
	Profile string `json:"profile,omitempty"`
	// Region: [Output Only] URL of the region where the regional SSL policy
	// resides. This field is not applicable to global SSL policies.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// TlsSettings: Security settings for the proxy. This field is only applicable
	// to a global backend service with the loadBalancingScheme set to
	// INTERNAL_SELF_MANAGED.
	TlsSettings *ServerTlsSettings `json:"tlsSettings,omitempty"`
	// Warnings: [Output Only] If potential misconfigurations are detected for this
	// SSL policy, this field will be populated with warning messages.
	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod SslPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPolicyWarnings struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SslPolicyWarningsData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPolicyWarnings) MarshalJSON() ([]byte, error) {
	type NoMethod SslPolicyWarnings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPolicyWarningsData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
	type NoMethod SslPolicyWarningsData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SslPolicyReference struct {
	// SslPolicy: URL of the SSL policy resource. Set this to empty string to clear
	// any existing SSL policy associated with the target proxy resource.
	SslPolicy string `json:"sslPolicy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SslPolicy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SslPolicyReference) MarshalJSON() ([]byte, error) {
	type NoMethod SslPolicyReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StatefulPolicy struct {
	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PreservedState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PreservedState") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StatefulPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod StatefulPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StatefulPolicyPreservedState: Configuration of preserved resources.
type StatefulPolicyPreservedState struct {
	// Disks: Disks created on the instances that will be preserved on instance
	// delete, update, etc. This map is keyed with the device names of the disks.
	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
	// ExternalIPs: External network IPs assigned to the instances that will be
	// preserved on instance delete, update, etc. This map is keyed with the
	// network interface name.
	ExternalIPs map[string]StatefulPolicyPreservedStateNetworkIp `json:"externalIPs,omitempty"`
	// InternalIPs: Internal network IPs assigned to the instances that will be
	// preserved on instance delete, update, etc. This map is keyed with the
	// network interface name.
	InternalIPs map[string]StatefulPolicyPreservedStateNetworkIp `json:"internalIPs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disks") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
	type NoMethod StatefulPolicyPreservedState
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StatefulPolicyPreservedStateDiskDevice struct {
	// AutoDelete: These stateful disks will never be deleted during autohealing,
	// update or VM instance recreate operations. This flag is used to configure if
	// the disk should be deleted after it is no longer used by the group, e.g.
	// when the given instance or the whole group is deleted. Note: disks attached
	// in READ_ONLY mode cannot be auto-deleted.
	//
	// Possible values:
	//   "NEVER"
	//   "ON_PERMANENT_INSTANCE_DELETION"
	AutoDelete string `json:"autoDelete,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDelete") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
	type NoMethod StatefulPolicyPreservedStateDiskDevice
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StatefulPolicyPreservedStateNetworkIp struct {
	// AutoDelete: These stateful IPs will never be released during autohealing,
	// update or VM instance recreate operations. This flag is used to configure if
	// the IP reservation should be deleted after it is no longer used by the
	// group, e.g. when the given instance or the whole group is deleted.
	//
	// Possible values:
	//   "NEVER"
	//   "ON_PERMANENT_INSTANCE_DELETION"
	AutoDelete string `json:"autoDelete,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoDelete") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StatefulPolicyPreservedStateNetworkIp) MarshalJSON() ([]byte, error) {
	type NoMethod StatefulPolicyPreservedStateNetworkIp
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Status: The `Status` type defines a logical error model that is suitable for
// different programming environments, including REST APIs and RPC APIs. It is
// used by gRPC (https://github.com/grpc). Each `Status` message contains three
// pieces of data: error code, error message, and error details. You can find
// out more about this error model and how to work with it in the API Design
// Guide (https://cloud.google.com/apis/design/errors).
type Status struct {
	// Code: The status code, which should be an enum value of google.rpc.Code.
	Code int64 `json:"code,omitempty"`
	// Details: A list of messages that carry the error details. There is a common
	// set of message types for APIs to use.
	Details []googleapi.RawMessage `json:"details,omitempty"`
	// Message: A developer-facing error message, which should be in English. Any
	// user-facing error message should be localized and sent in the
	// google.rpc.Status.details field, or localized by the client.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Status) MarshalJSON() ([]byte, error) {
	type NoMethod Status
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePool: Represents a zonal storage pool resource.
type StoragePool struct {
	// CapacityProvisioningType: Provisioning type of the byte capacity of the
	// pool.
	//
	// Possible values:
	//   "ADVANCED" - Advanced provisioning "thinly" allocates the related
	// resource.
	//   "STANDARD" - Standard provisioning allocates the related resource for the
	// pool disks' exclusive use.
	//   "UNSPECIFIED"
	CapacityProvisioningType string `json:"capacityProvisioningType,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#storagePool for
	// storage pools.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this storage
	// pool, which is essentially a hash of the labels set used for optimistic
	// locking. The fingerprint is initially generated by Compute Engine and
	// changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a storage pool.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels to apply to this storage pool. These can be later modified by
	// the setLabels method.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// PerformanceProvisioningType: Provisioning type of the performance-related
	// parameters of the pool, such as throughput and IOPS.
	//
	// Possible values:
	//   "ADVANCED" - Advanced provisioning "thinly" allocates the related
	// resource.
	//   "STANDARD" - Standard provisioning allocates the related resource for the
	// pool disks' exclusive use.
	//   "UNSPECIFIED"
	PerformanceProvisioningType string `json:"performanceProvisioningType,omitempty"`
	// PoolProvisionedCapacityGb: Size, in GiB, of the storage pool. For more
	// information about the size limits, see
	// https://cloud.google.com/compute/docs/disks/storage-pools.
	PoolProvisionedCapacityGb int64 `json:"poolProvisionedCapacityGb,omitempty,string"`
	// PoolProvisionedIops: Provisioned IOPS of the storage pool. Only relevant if
	// the storage pool type is hyperdisk-balanced.
	PoolProvisionedIops int64 `json:"poolProvisionedIops,omitempty,string"`
	// PoolProvisionedThroughput: Provisioned throughput of the storage pool. Only
	// relevant if the storage pool type is hyperdisk-balanced or
	// hyperdisk-throughput.
	PoolProvisionedThroughput int64 `json:"poolProvisionedThroughput,omitempty,string"`
	// ProvisionedIops: DEPRECATED -- use "pool provisioned IOPS".
	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
	// ProvisionedThroughput: DEPRECATED -- use "pool provisioned throughput".
	ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"`
	// ResourceStatus: [Output Only] Status information for the storage pool
	// resource.
	ResourceStatus *StoragePoolResourceStatus `json:"resourceStatus,omitempty"`
	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
	// resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource's
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SizeGb: DEPRECATED -- use "pool provisioned capacity gb".
	SizeGb int64 `json:"sizeGb,omitempty,string"`
	// State: [Output Only] The status of storage pool creation. - CREATING:
	// Storage pool is provisioning. storagePool. - FAILED: Storage pool creation
	// failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is
	// deleting.
	//
	// Possible values:
	//   "CREATING" - StoragePool is provisioning
	//   "DELETING" - StoragePool is deleting.
	//   "FAILED" - StoragePool creation failed.
	//   "READY" - StoragePool is ready for use.
	State string `json:"state,omitempty"`
	// Status: [Output Only] Status information for the storage pool resource.
	Status *StoragePoolResourceStatus `json:"status,omitempty"`
	// StoragePoolType: Type of the storage pool.
	StoragePoolType string `json:"storagePoolType,omitempty"`
	// Zone: [Output Only] URL of the zone where the storage pool resides. You must
	// specify this field as part of the HTTP request URL. It is not settable as a
	// field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CapacityProvisioningType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CapacityProvisioningType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePool) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePool
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolAggregatedList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of StoragePoolsScopedList resources.
	Items map[string]StoragePoolsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#storagePoolAggregatedList for aggregated lists of storage pools.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *StoragePoolAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolAggregatedListWarning: [Output Only] Informational warning
// message.
type StoragePoolAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*StoragePoolAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolDisk struct {
	// AttachedInstances: [Output Only] Instances this disk is attached to.
	AttachedInstances []string `json:"attachedInstances,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Disk: [Output Only] The URL of the disk.
	Disk string `json:"disk,omitempty"`
	// Name: [Output Only] The name of the disk.
	Name string `json:"name,omitempty"`
	// ProvisionedIops: [Output Only] The number of IOPS provisioned for the disk.
	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
	// ProvisionedThroughput: [Output Only] The throughput provisioned for the
	// disk.
	ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"`
	// ResourcePolicies: [Output Only] Resource policies applied to disk for
	// automatic snapshot creations.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// SizeGb: [Output Only] The disk size, in GB.
	SizeGb int64 `json:"sizeGb,omitempty,string"`
	// Status: [Output Only] The disk status.
	//
	// Possible values:
	//   "CREATING" - Disk is provisioning
	//   "DELETING" - Disk is deleting.
	//   "FAILED" - Disk creation failed.
	//   "READY" - Disk is ready for use.
	//   "RESTORING" - Source data is being copied into the disk.
	//   "UNAVAILABLE" - Disk is currently unavailable and cannot be accessed,
	// attached or detached.
	Status string `json:"status,omitempty"`
	// Type: [Output Only] The disk type.
	Type string `json:"type,omitempty"`
	// UsedBytes: [Output Only] Amount of disk space used.
	UsedBytes int64 `json:"usedBytes,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AttachedInstances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttachedInstances") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolDisk) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolDisk
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolList: A list of StoragePool resources.
type StoragePoolList struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of StoragePool resources.
	Items []*StoragePool `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#storagePoolList for
	// lists of storagePools.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources. end_interface:
	// MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *StoragePoolListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolList) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolListWarning: [Output Only] Informational warning message.
type StoragePoolListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*StoragePoolListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolListDisks struct {
	Etag string `json:"etag,omitempty"`
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of StoragePoolDisk resources.
	Items []*StoragePoolDisk `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#storagePoolListDisks
	// for lists of disks in a storagePool.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources. end_interface:
	// MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *StoragePoolListDisksWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Etag") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Etag") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolListDisks) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolListDisks
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolListDisksWarning: [Output Only] Informational warning message.
type StoragePoolListDisksWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*StoragePoolListDisksWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolListDisksWarning) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolListDisksWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolListDisksWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolListDisksWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolListDisksWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolResourceStatus: [Output Only] Contains output only fields.
type StoragePoolResourceStatus struct {
	// AggregateDiskProvisionedIops: DEPRECATED -- use
	// "total_provisioned_disk_iops".
	AggregateDiskProvisionedIops int64 `json:"aggregateDiskProvisionedIops,omitempty,string"`
	// AggregateDiskSizeGb: DEPRECATED -- use "total provisioned disk size gb".
	AggregateDiskSizeGb int64 `json:"aggregateDiskSizeGb,omitempty,string"`
	// DiskCount: [Output Only] Number of disks used.
	DiskCount int64 `json:"diskCount,omitempty,string"`
	// LastResizeTimestamp: [Output Only] Timestamp of the last successful resize
	// in RFC3339 text format.
	LastResizeTimestamp string `json:"lastResizeTimestamp,omitempty"`
	// MaxAggregateDiskSizeGb: DEPRECATED -- use "max provisioned disk size gb"
	MaxAggregateDiskSizeGb int64 `json:"maxAggregateDiskSizeGb,omitempty,string"`
	// MaxTotalProvisionedDiskCapacityGb: [Output Only] Maximum allowed aggregate
	// disk size in gigabytes.
	MaxTotalProvisionedDiskCapacityGb int64 `json:"maxTotalProvisionedDiskCapacityGb,omitempty,string"`
	// NumberOfDisks: DEPRECATED -- use "disk count".
	NumberOfDisks int64 `json:"numberOfDisks,omitempty,string"`
	// PoolUsedCapacityBytes: [Output Only] Space used by data stored in disks
	// within the storage pool (in bytes). This will reflect the total number of
	// bytes written to the disks in the pool, in contrast to the capacity of those
	// disks.
	PoolUsedCapacityBytes int64 `json:"poolUsedCapacityBytes,omitempty,string"`
	// PoolUsedIops: [Output Only] Sum of all the disks' provisioned IOPS, minus
	// some amount that is allowed per disk that is not counted towards pool's IOPS
	// capacity. For more information, see
	// https://cloud.google.com/compute/docs/disks/storage-pools.
	PoolUsedIops int64 `json:"poolUsedIops,omitempty,string"`
	// PoolUsedThroughput: [Output Only] Sum of all the disks' provisioned
	// throughput in MB/s.
	PoolUsedThroughput int64 `json:"poolUsedThroughput,omitempty,string"`
	// PoolUserWrittenBytes: [Output Only] Amount of data written into the pool,
	// before it is compacted.
	PoolUserWrittenBytes int64 `json:"poolUserWrittenBytes,omitempty,string"`
	// TotalProvisionedDiskCapacityGb: [Output Only] Sum of all the capacity
	// provisioned in disks in this storage pool. A disk's provisioned capacity is
	// the same as its total capacity.
	TotalProvisionedDiskCapacityGb int64 `json:"totalProvisionedDiskCapacityGb,omitempty,string"`
	// TotalProvisionedDiskIops: [Output Only] Sum of all the disks' provisioned
	// IOPS.
	TotalProvisionedDiskIops int64 `json:"totalProvisionedDiskIops,omitempty,string"`
	// TotalProvisionedDiskThroughput: [Output Only] Sum of all the disks'
	// provisioned throughput in MB/s, minus some amount that is allowed per disk
	// that is not counted towards pool's throughput capacity.
	TotalProvisionedDiskThroughput int64 `json:"totalProvisionedDiskThroughput,omitempty,string"`
	// UsedBytes: DEPRECATED -- use "pool used capacity".
	UsedBytes int64 `json:"usedBytes,omitempty,string"`
	// UsedReducedBytes: DEPRECATED -- do not use, will be removed.
	UsedReducedBytes int64 `json:"usedReducedBytes,omitempty,string"`
	// UsedThroughput: DEPRECATED -- use "pool used throughput".
	UsedThroughput int64 `json:"usedThroughput,omitempty,string"`
	// ForceSendFields is a list of field names (e.g.
	// "AggregateDiskProvisionedIops") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregateDiskProvisionedIops") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolType struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- [Output Only] The deprecation status associated with this
	// storage pool type.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: [Output Only] An optional description of this resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#storagePoolType for
	// storage pool types.
	Kind string `json:"kind,omitempty"`
	// MaxPoolProvisionedCapacityGb: [Output Only] Maximum storage pool size in GB.
	MaxPoolProvisionedCapacityGb int64 `json:"maxPoolProvisionedCapacityGb,omitempty,string"`
	// MaxPoolProvisionedIops: [Output Only] Maximum provisioned IOPS.
	MaxPoolProvisionedIops int64 `json:"maxPoolProvisionedIops,omitempty,string"`
	// MaxPoolProvisionedThroughput: [Output Only] Maximum provisioned throughput.
	MaxPoolProvisionedThroughput int64 `json:"maxPoolProvisionedThroughput,omitempty,string"`
	// MinPoolProvisionedCapacityGb: [Output Only] Minimum storage pool size in GB.
	MinPoolProvisionedCapacityGb int64 `json:"minPoolProvisionedCapacityGb,omitempty,string"`
	// MinPoolProvisionedIops: [Output Only] Minimum provisioned IOPS.
	MinPoolProvisionedIops int64 `json:"minPoolProvisionedIops,omitempty,string"`
	// MinPoolProvisionedThroughput: [Output Only] Minimum provisioned throughput.
	MinPoolProvisionedThroughput int64 `json:"minPoolProvisionedThroughput,omitempty,string"`
	// MinSizeGb: [Deprecated] This field is deprecated. Use
	// minPoolProvisionedCapacityGb instead.
	MinSizeGb int64 `json:"minSizeGb,omitempty,string"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SupportedDiskTypes: [Output Only] The list of disk types supported in this
	// storage pool type.
	SupportedDiskTypes []string `json:"supportedDiskTypes,omitempty"`
	// Zone: [Output Only] URL of the zone where the storage pool type resides. You
	// must specify this field as part of the HTTP request URL. It is not settable
	// as a field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolType) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolTypeAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of StoragePoolTypesScopedList resources.
	Items map[string]StoragePoolTypesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#storagePoolTypeAggregatedList .
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *StoragePoolTypeAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypeAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypeAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolTypeAggregatedListWarning: [Output Only] Informational warning
// message.
type StoragePoolTypeAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*StoragePoolTypeAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypeAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolTypeAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypeAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolTypeList: Contains a list of storage pool types.
type StoragePoolTypeList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of StoragePoolType resources.
	Items []*StoragePoolType `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#storagePoolTypeList for
	// storage pool types.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *StoragePoolTypeListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypeList) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypeList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolTypeListWarning: [Output Only] Informational warning message.
type StoragePoolTypeListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*StoragePoolTypeListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypeListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypeListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolTypeListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypeListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypeListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolTypesScopedList struct {
	// StoragePoolTypes: [Output Only] A list of storage pool types contained in
	// this scope.
	StoragePoolTypes []*StoragePoolType `json:"storagePoolTypes,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// storage pool types when the list is empty.
	Warning *StoragePoolTypesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StoragePoolTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StoragePoolTypes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolTypesScopedListWarning: [Output Only] Informational warning which
// replaces the list of storage pool types when the list is empty.
type StoragePoolTypesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*StoragePoolTypesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolTypesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolTypesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolsScopedList struct {
	// StoragePools: [Output Only] A list of storage pool contained in this scope.
	StoragePools []*StoragePool `json:"storagePools,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// storage pool when the list is empty.
	Warning *StoragePoolsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StoragePools") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StoragePools") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolsScopedListWarning: [Output Only] Informational warning which
// replaces the list of storage pool when the list is empty.
type StoragePoolsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*StoragePoolsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StructuredEntries struct {
	// Entries: Map of a partner metadata that belong to the same subdomain. It
	// accepts any value including google.protobuf.Struct.
	Entries googleapi.RawMessage `json:"entries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Entries") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Entries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StructuredEntries) MarshalJSON() ([]byte, error) {
	type NoMethod StructuredEntries
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Subnetwork: Represents a Subnetwork resource. A subnetwork (also known as a
// subnet) is a logical partition of a Virtual Private Cloud network with one
// primary IP range and zero or more secondary IP ranges. For more information,
// read Virtual Private Cloud (VPC) Network.
type Subnetwork struct {
	// AggregationInterval: Can only be specified if VPC flow logging for this
	// subnetwork is enabled. Sets the aggregation interval for collecting flow
	// logs. Increasing the interval time reduces the amount of generated flow logs
	// for long-lasting connections. Default is an interval of 5 seconds per
	// connection. Valid values: INTERVAL_5_SEC, INTERVAL_30_SEC, INTERVAL_1_MIN,
	// INTERVAL_5_MIN, INTERVAL_10_MIN, INTERVAL_15_MIN.
	//
	// Possible values:
	//   "INTERVAL_10_MIN"
	//   "INTERVAL_15_MIN"
	//   "INTERVAL_1_MIN"
	//   "INTERVAL_30_SEC"
	//   "INTERVAL_5_MIN"
	//   "INTERVAL_5_SEC"
	AggregationInterval string `json:"aggregationInterval,omitempty"`
	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork's ranges can conflict
	// with existing static routes. Setting this to true allows this subnetwork's
	// primary and secondary ranges to overlap with (and contain) static routes
	// that have already been configured on the corresponding network. For example
	// if a static route has range 10.1.0.0/16, a subnet range 10.0.0.0/8 could
	// only be created if allow_conflicting_routes=true. Overlapping is only
	// allowed on subnetwork operations; routes whose ranges conflict with this
	// subnetwork's ranges won't be allowed unless
	// route.allow_conflicting_subnetworks is set to true. Typically packets
	// destined to IPs within the subnetwork (which may contain private/sensitive
	// data) are prevented from leaving the virtual network. Setting this field to
	// true will disable this feature. The default value is false and applies to
	// all existing subnetworks and automatically created subnetworks. This field
	// cannot be set to true at resource creation time.
	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource. This field can be set only at resource
	// creation time.
	Description string `json:"description,omitempty"`
	// EnableFlowLogs: Whether to enable flow logging for this subnetwork. If this
	// field is not explicitly set, it will not appear in get listings. If not set
	// the default behavior is determined by the org policy, if there is no org
	// policy specified, then it will default to disabled. This field isn't
	// supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
	// EnableL2: Enables Layer2 communication on the subnetwork.
	EnableL2 bool `json:"enableL2,omitempty"`
	// EnablePrivateV6Access: Deprecated in favor of enable in
	// PrivateIpv6GoogleAccess. Whether the VMs in this subnet can directly access
	// Google services via internal IPv6 addresses. This field can be both set at
	// resource creation time and updated using patch.
	EnablePrivateV6Access bool `json:"enablePrivateV6Access,omitempty"`
	// ExternalIpv6Prefix: The external IPv6 address range that is owned by this
	// subnetwork.
	ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a Subnetwork. An up-to-date fingerprint must be
	// provided in order to update the Subnetwork, otherwise the request will fail
	// with error 412 conditionNotMet. To see the latest fingerprint, make a get()
	// request to retrieve a Subnetwork.
	Fingerprint string `json:"fingerprint,omitempty"`
	// FlowSampling: Can only be specified if VPC flow logging for this subnetwork
	// is enabled. The value of the field must be in [0, 1]. Set the sampling rate
	// of VPC flow logs within the subnetwork where 1.0 means all collected logs
	// are reported and 0.0 means no logs are reported. Default is 0.5 unless
	// otherwise specified by the org policy, which means half of all collected
	// logs are reported.
	FlowSampling float64 `json:"flowSampling,omitempty"`
	// GatewayAddress: [Output Only] The gateway address for default routes to
	// reach destination addresses outside this subnetwork.
	GatewayAddress string `json:"gatewayAddress,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InternalIpv6Prefix: [Output Only] The internal IPv6 address range that is
	// assigned to this subnetwork.
	InternalIpv6Prefix string `json:"internalIpv6Prefix,omitempty"`
	// IpCidrRange: The range of internal addresses that are owned by this
	// subnetwork. Provide this property when you create the subnetwork. For
	// example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and
	// non-overlapping within a network. Only IPv4 is supported. This field is set
	// at resource creation time. The range can be any range listed in the Valid
	// ranges list. The range can be expanded after creation using
	// expandIpCidrRange.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// Ipv6AccessType: The access type of IPv6 address this subnet holds. It's
	// immutable and can only be specified during creation or the first time the
	// subnet is updated into IPV4_IPV6 dual stack.
	//
	// Possible values:
	//   "EXTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are
	// accessible via the Internet, as well as the VPC network.
	//   "INTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are
	// only accessible over the VPC network.
	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
	// Ipv6CidrRange: [Output Only] This field is for internal use.
	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#subnetwork for
	// Subnetwork resources.
	Kind string `json:"kind,omitempty"`
	// LogConfig: This field denotes the VPC flow logging options for this
	// subnetwork. If logging is enabled, logs are exported to Cloud Logging.
	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
	// Metadata: Can only be specified if VPC flow logging for this subnetwork is
	// enabled. Configures whether metadata fields should be added to the reported
	// VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and
	// CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA.
	//
	// Possible values:
	//   "EXCLUDE_ALL_METADATA"
	//   "INCLUDE_ALL_METADATA"
	Metadata string `json:"metadata,omitempty"`
	// Name: The name of the resource, provided by the client when initially
	// creating the resource. The name must be 1-63 characters long, and comply
	// with RFC1035. Specifically, the name must be 1-63 characters long and match
	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
	// character must be a lowercase letter, and all following characters must be a
	// dash, lowercase letter, or digit, except the last character, which cannot be
	// a dash.
	Name string `json:"name,omitempty"`
	// Network: The URL of the network to which this subnetwork belongs, provided
	// by the client when initially creating the subnetwork. This field can be set
	// only at resource creation time.
	Network string `json:"network,omitempty"`
	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access Google
	// services without assigned external IP addresses. This field can be both set
	// at resource creation time and updated using setPrivateIpGoogleAccess.
	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
	// PrivateIpv6GoogleAccess: This field is for internal use. This field can be
	// both set at resource creation time and updated using patch.
	//
	// Possible values:
	//   "DISABLE_GOOGLE_ACCESS" - Disable private IPv6 access to/from Google
	// services.
	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private IPv6
	// access to/from Google services.
	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from
	// VMs in this subnet to Google services.
	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
	// Purpose: The purpose of the resource. This field can be either PRIVATE,
	// GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
	// PRIVATE is the default purpose for user-created subnets or subnets that are
	// automatically created in auto mode networks. Subnets with purpose set to
	// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks
	// that are reserved for Envoy-based load balancers. A subnet with purpose set
	// to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
	// Connect. If unspecified, the subnet purpose defaults to PRIVATE. The
	// enableFlowLogs field isn't supported if the subnet purpose field is set to
	// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.
	//
	// Possible values:
	//   "AGGREGATE" - Subnetwork used to aggregate multiple private subnetworks.
	//   "CLOUD_EXTENSION" - Subnetworks created for Cloud Extension Machines.
	//   "GLOBAL_MANAGED_PROXY" - Subnet reserved for Global Envoy-based Load
	// Balancing.
	//   "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal HTTP(S) Load
	// Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY
	// instead.
	//   "PRIVATE" - Regular user created or automatically created subnet.
	//   "PRIVATE_NAT" - Subnetwork used as source range for Private NAT Gateways.
	//   "PRIVATE_RFC_1918" - Regular user created or automatically created subnet.
	//   "PRIVATE_SERVICE_CONNECT" - Subnetworks created for Private Service
	// Connect in the producer network.
	//   "REGIONAL_MANAGED_PROXY" - Subnetwork used for Regional Envoy-based Load
	// Balancing.
	Purpose string `json:"purpose,omitempty"`
	// Region: URL of the region where the Subnetwork resides. This field can be
	// set only at resource creation time.
	Region string `json:"region,omitempty"`
	// ReservedInternalRange: The URL of the reserved internal range.
	ReservedInternalRange string `json:"reservedInternalRange,omitempty"`
	// Role: The role of subnetwork. Currently, this field is only used when
	// purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value
	// can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is
	// currently being used for Envoy-based load balancers in a region. A BACKUP
	// subnetwork is one that is ready to be promoted to ACTIVE or is currently
	// draining. This field can be updated with a patch request.
	//
	// Possible values:
	//   "ACTIVE" - The ACTIVE subnet that is currently used.
	//   "BACKUP" - The BACKUP subnet that could be promoted to ACTIVE.
	Role string `json:"role,omitempty"`
	// SecondaryIpRanges: An array of configurations for secondary IP ranges for VM
	// instances contained in this subnetwork. The primary IP of such VM must
	// belong to the primary ipCidrRange of the subnetwork. The alias IPs may
	// belong to either primary or secondary ranges. This field can be updated with
	// a patch request.
	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// StackType: The stack type for the subnet. If set to IPV4_ONLY, new VMs in
	// the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in
	// the subnet can be assigned both IPv4 and IPv6 addresses. If not specified,
	// IPV4_ONLY is used. This field can be both set at resource creation time and
	// updated using patch.
	//
	// Possible values:
	//   "IPV4_IPV6" - New VMs in this subnet can have both IPv4 and IPv6
	// addresses.
	//   "IPV4_ONLY" - New VMs in this subnet will only be assigned IPv4 addresses.
	//   "IPV6_ONLY" - New VMs in this subnet will only be assigned IPv6 addresses.
	StackType string `json:"stackType,omitempty"`
	// State: [Output Only] The state of the subnetwork, which can be one of the
	// following values: READY: Subnetwork is created and ready to use DRAINING:
	// only applicable to subnetworks that have the purpose set to
	// INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load
	// balancer are being drained. A subnetwork that is draining cannot be used or
	// modified until it reaches a status of READY
	//
	// Possible values:
	//   "DRAINING" - Subnetwork is being drained.
	//   "READY" - Subnetwork is ready for use.
	State string `json:"state,omitempty"`
	// Vlans: A repeated field indicating the VLAN IDs supported on this
	// subnetwork. During Subnet creation, specifying vlan is valid only if
	// enable_l2 is true. During Subnet Update, specifying vlan is allowed only for
	// l2 enabled subnets. Restricted to only one VLAN.
	Vlans []int64 `json:"vlans,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AggregationInterval") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregationInterval") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Subnetwork) MarshalJSON() ([]byte, error) {
	type NoMethod Subnetwork
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *Subnetwork) UnmarshalJSON(data []byte) error {
	type NoMethod Subnetwork
	var s1 struct {
		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.FlowSampling = float64(s1.FlowSampling)
	return nil
}

type SubnetworkAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of SubnetworksScopedList resources.
	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SubnetworkAggregatedListWarning: [Output Only] Informational warning
// message.
type SubnetworkAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworkAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SubnetworkList: Contains a list of Subnetwork resources.
type SubnetworkList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Subnetwork resources.
	Items []*Subnetwork `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#subnetworkList for
	// lists of subnetworks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *SubnetworkListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkList) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SubnetworkListWarning: [Output Only] Informational warning message.
type SubnetworkListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SubnetworkListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworkListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SubnetworkLogConfig: The available logging options for this subnetwork.
type SubnetworkLogConfig struct {
	// AggregationInterval: Can only be specified if VPC flow logging for this
	// subnetwork is enabled. Toggles the aggregation interval for collecting flow
	// logs. Increasing the interval time will reduce the amount of generated flow
	// logs for long lasting connections. Default is an interval of 5 seconds per
	// connection.
	//
	// Possible values:
	//   "INTERVAL_10_MIN"
	//   "INTERVAL_15_MIN"
	//   "INTERVAL_1_MIN"
	//   "INTERVAL_30_SEC"
	//   "INTERVAL_5_MIN"
	//   "INTERVAL_5_SEC"
	AggregationInterval string `json:"aggregationInterval,omitempty"`
	// Enable: Whether to enable flow logging for this subnetwork. If this field is
	// not explicitly set, it will not appear in get listings. If not set the
	// default behavior is determined by the org policy, if there is no org policy
	// specified, then it will default to disabled. Flow logging isn't supported if
	// the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
	Enable bool `json:"enable,omitempty"`
	// FilterExpr: Can only be specified if VPC flow logs for this subnetwork is
	// enabled. The filter expression is used to define which VPC flow logs should
	// be exported to Cloud Logging.
	FilterExpr string `json:"filterExpr,omitempty"`
	// FlowSampling: Can only be specified if VPC flow logging for this subnetwork
	// is enabled. The value of the field must be in [0, 1]. Set the sampling rate
	// of VPC flow logs within the subnetwork where 1.0 means all collected logs
	// are reported and 0.0 means no logs are reported. Default is 0.5 unless
	// otherwise specified by the org policy, which means half of all collected
	// logs are reported.
	FlowSampling float64 `json:"flowSampling,omitempty"`
	// Metadata: Can only be specified if VPC flow logs for this subnetwork is
	// enabled. Configures whether all, none or a subset of metadata fields should
	// be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
	//
	// Possible values:
	//   "CUSTOM_METADATA"
	//   "EXCLUDE_ALL_METADATA"
	//   "INCLUDE_ALL_METADATA"
	Metadata string `json:"metadata,omitempty"`
	// MetadataFields: Can only be specified if VPC flow logs for this subnetwork
	// is enabled and "metadata" was set to CUSTOM_METADATA.
	MetadataFields []string `json:"metadataFields,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AggregationInterval") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregationInterval") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkLogConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
	type NoMethod SubnetworkLogConfig
	var s1 struct {
		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.FlowSampling = float64(s1.FlowSampling)
	return nil
}

// SubnetworkSecondaryRange: Represents a secondary IP range of a subnetwork.
type SubnetworkSecondaryRange struct {
	// IpCidrRange: The range of IP addresses belonging to this subnetwork
	// secondary range. Provide this property when you create the subnetwork.
	// Ranges must be unique and non-overlapping with all primary and secondary IP
	// ranges within a network. Only IPv4 is supported. The range can be any range
	// listed in the Valid ranges list.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// RangeName: The name associated with this subnetwork secondary range, used
	// when adding an alias IP range to a VM instance. The name must be 1-63
	// characters long, and comply with RFC1035. The name must be unique within the
	// subnetwork.
	RangeName string `json:"rangeName,omitempty"`
	// ReservedInternalRange: The URL of the reserved internal range.
	ReservedInternalRange string `json:"reservedInternalRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkSecondaryRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworksExpandIpCidrRangeRequest struct {
	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses that
	// are legal on this Subnetwork. This range should be disjoint from other
	// subnetworks within this network. This range can only be larger than (i.e. a
	// superset of) the range previously defined before the update.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksExpandIpCidrRangeRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworksScopedList struct {
	// Subnetworks: A list of subnetworks contained in this scope.
	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
	// Warning: An informational warning that appears when the list of addresses is
	// empty.
	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Subnetworks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SubnetworksScopedListWarning: An informational warning that appears when the
// list of addresses is empty.
type SubnetworksScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworksScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworksScopedWarning struct {
	// ScopeName: Name of the scope containing this set of Subnetworks.
	ScopeName string `json:"scopeName,omitempty"`
	// Warning: An informational warning about unreachable scope
	Warning *SubnetworksScopedWarningWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ScopeName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ScopeName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksScopedWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksScopedWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SubnetworksScopedWarningWarning: An informational warning about unreachable
// scope
type SubnetworksScopedWarningWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*SubnetworksScopedWarningWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksScopedWarningWarning) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksScopedWarningWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworksScopedWarningWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksScopedWarningWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksScopedWarningWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SubnetworksSetPrivateIpGoogleAccessRequest struct {
	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Subsetting: Subsetting configuration for this BackendService. Currently this
// is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S)
// load balancing and Traffic Director.
type Subsetting struct {
	// Possible values:
	//   "CONSISTENT_HASH_SUBSETTING" - Subsetting based on consistent hashing. For
	// Traffic Director, the number of backends per backend group (the subset size)
	// is based on the `subset_size` parameter. For Internal HTTP(S) load
	// balancing, the number of backends per backend group (the subset size) is
	// dynamically adjusted in two cases: - As the number of proxy instances
	// participating in Internal HTTP(S) load balancing increases, the subset size
	// decreases. - When the total number of backends in a network exceeds the
	// capacity of a single proxy instance, subset sizes are reduced automatically
	// for each service that has backend subsetting enabled.
	//   "NONE" - No Subsetting. Clients may open connections and send traffic to
	// all backends of this backend service. This can lead to performance issues if
	// there is substantial imbalance in the count of clients and backends.
	Policy string `json:"policy,omitempty"`
	// SubsetSize: The number of backends per backend group assigned to each proxy
	// instance or each service mesh client. An input parameter to the
	// `CONSISTENT_HASH_SUBSETTING` algorithm. Can only be set if `policy` is set
	// to `CONSISTENT_HASH_SUBSETTING`. Can only be set if load balancing scheme is
	// `INTERNAL_MANAGED` or `INTERNAL_SELF_MANAGED`. `subset_size` is optional for
	// Internal HTTP(S) load balancing and required for Traffic Director. If you do
	// not provide this value, Cloud Load Balancing will calculate it dynamically
	// to optimize the number of proxies/clients visible to each backend and vice
	// versa. Must be greater than 0. If `subset_size` is larger than the number of
	// backends/endpoints, then subsetting is disabled.
	SubsetSize int64 `json:"subsetSize,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Policy") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Policy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Subsetting) MarshalJSON() ([]byte, error) {
	type NoMethod Subsetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TCPHealthCheck struct {
	// Port: The TCP port number to which the health check prober sends packets.
	// The default value is 80. Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortName: Not supported.
	PortName string `json:"portName,omitempty"`
	// PortSpecification: Specifies how a port is selected for health checking. Can
	// be one of the following values: USE_FIXED_PORT: Specifies a port number
	// explicitly using the port field in the health check. Supported by backend
	// services for passthrough load balancers and backend services for proxy load
	// balancers. Not supported by target pools. The health check supports all
	// backends supported by the backend service provided the backend can be health
	// checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT
	// network endpoint groups, and instance group backends. USE_NAMED_PORT: Not
	// supported. USE_SERVING_PORT: Provides an indirect method of specifying the
	// health check port by referring to the backend service. Only supported by
	// backend services for proxy load balancers. Not supported by target pools.
	// Not supported by backend services for passthrough load balancers. Supports
	// all backends that can be health checked; for example, GCE_VM_IP_PORT network
	// endpoint groups and instance group backends. For GCE_VM_IP_PORT network
	// endpoint group backends, the health check uses the port number specified for
	// each endpoint in the network endpoint group. For instance group backends,
	// the health check uses the port number determined by looking up the backend
	// service's named port in the instance group's list of named ports.
	//
	// Possible values:
	//   "USE_FIXED_PORT" - The port number in the health check's port is used for
	// health checking. Applies to network endpoint group and instance group
	// backends.
	//   "USE_NAMED_PORT" - Not supported.
	//   "USE_SERVING_PORT" - For network endpoint group backends, the health check
	// uses the port number specified on each endpoint in the network endpoint
	// group. For instance group backends, the health check uses the port number
	// specified for the backend service's named port defined in the instance
	// group's named ports.
	PortSpecification string `json:"portSpecification,omitempty"`
	// ProxyHeader: Specifies the type of proxy header to append before sending
	// data to the backend, either NONE or PROXY_V1. The default is NONE.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// Request: Instructs the health check prober to send this exact ASCII string,
	// up to 1024 bytes in length, after establishing the TCP connection.
	Request string `json:"request,omitempty"`
	// Response: Creates a content-based TCP health check. In addition to
	// establishing a TCP connection, you can configure the health check to pass
	// only when the backend sends this exact response ASCII string, up to 1024
	// bytes in length. For details, see:
	// https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp
	Response string `json:"response,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Port") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Port") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TCPHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod TCPHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Tags: A set of instance tags.
type Tags struct {
	// Fingerprint: Specifies a fingerprint for this request, which is essentially
	// a hash of the tags' contents and used for optimistic locking. The
	// fingerprint is initially generated by Compute Engine and changes after every
	// request to modify or update tags. You must always provide an up-to-date
	// fingerprint hash in order to update or change tags. To see the latest
	// fingerprint, make get() request to the instance.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Items: An array of tags. Each tag must be 1-63 characters long, and comply
	// with RFC1035.
	Items []string `json:"items,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Fingerprint") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Tags) MarshalJSON() ([]byte, error) {
	type NoMethod Tags
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetGrpcProxy: Represents a Target gRPC Proxy resource. A target gRPC
// proxy is a component of load balancers intended for load balancing gRPC
// traffic. Only global forwarding rules with load balancing scheme
// INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target gRPC
// Proxy references a URL map that specifies how traffic is routed to gRPC
// backend services.
type TargetGrpcProxy struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a TargetGrpcProxy. An up-to-date fingerprint must be
	// provided in order to patch/update the TargetGrpcProxy; otherwise, the
	// request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make a get() request to retrieve the TargetGrpcProxy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: [Output Only] The unique identifier for the resource type. The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#targetGrpcProxy for
	// target grpc proxies.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL with id for the resource.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// UrlMap: URL to the UrlMap resource that defines the mapping from URL to the
	// BackendService. The protocol field in the BackendService must be set to
	// GRPC.
	UrlMap string `json:"urlMap,omitempty"`
	// ValidateForProxyless: If true, indicates that the BackendServices referenced
	// by the urlMap may be accessed by gRPC applications without using a sidecar
	// proxy. This will enable configuration checks on urlMap and its referenced
	// BackendServices to not allow unsupported features. A gRPC application must
	// use "xds:///" scheme in the target URI of the service it is connecting to.
	// If false, indicates that the BackendServices referenced by the urlMap will
	// be accessed by gRPC applications via a sidecar proxy. In this case, a gRPC
	// application must not use "xds:///" scheme in the target URI of the service
	// it is connecting to
	ValidateForProxyless bool `json:"validateForProxyless,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetGrpcProxy) MarshalJSON() ([]byte, error) {
	type NoMethod TargetGrpcProxy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetGrpcProxyList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetGrpcProxy resources.
	Items []*TargetGrpcProxy `json:"items,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#targetGrpcProxy for
	// target grpc proxies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetGrpcProxyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetGrpcProxyList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetGrpcProxyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetGrpcProxyListWarning: [Output Only] Informational warning message.
type TargetGrpcProxyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetGrpcProxyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetGrpcProxyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetGrpcProxyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpProxiesScopedList struct {
	// TargetHttpProxies: A list of TargetHttpProxies contained in this scope.
	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetHttpProxies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxiesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpProxiesScopedListWarning: Informational warning which replaces the
// list of backend services when the list is empty.
type TargetHttpProxiesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxiesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpProxiesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxiesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpProxy: Represents a Target HTTP Proxy resource. Google Compute
// Engine has two Target HTTP Proxy resources: * Global
// (/compute/docs/reference/rest/alpha/targetHttpProxies) * Regional
// (/compute/docs/reference/rest/alpha/regionTargetHttpProxies) A target HTTP
// proxy is a component of Google Cloud HTTP load balancers. *
// targetHttpProxies are used by global external Application Load Balancers,
// classic Application Load Balancers, cross-region internal Application Load
// Balancers, and Traffic Director. * regionTargetHttpProxies are used by
// regional internal Application Load Balancers and regional external
// Application Load Balancers. Forwarding rules reference a target HTTP proxy,
// and the target proxy then references a URL map. For more information, read
// Using Target Proxies and Forwarding rule concepts.
type TargetHttpProxy struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be
	// provided in order to patch/update the TargetHttpProxy; otherwise, the
	// request will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make a get() request to retrieve the TargetHttpProxy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HttpFilters: URLs to networkservices.HttpFilter resources enabled for xDS
	// clients using this configuration. For example,
	// https://networkservices.googleapis.com/v1alpha1/projects/project/locations/
	// locationhttpFilters/httpFilter Only filters that handle outbound connection
	// and stream events may be specified. These filters work in conjunction with a
	// default set of HTTP filters that may already be configured by Traffic
	// Director. Traffic Director will determine the final location of these
	// filters within xDS configuration based on the name of the HTTP filter. If
	// Traffic Director positions multiple filters at the same location, those
	// filters will be in the same order as specified in this list. httpFilters
	// only applies for loadbalancers with loadBalancingScheme set to
	// INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
	HttpFilters []string `json:"httpFilters,omitempty"`
	// HttpKeepAliveTimeoutSec: Specifies how long to keep a connection open, after
	// completing a response, while there is no matching traffic (in seconds). If
	// an HTTP keep-alive is not specified, a default value (610 seconds) will be
	// used. For global external Application Load Balancers, the minimum allowed
	// value is 5 seconds and the maximum allowed value is 1200 seconds. For
	// classic Application Load Balancers, this option is not supported.
	HttpKeepAliveTimeoutSec int64 `json:"httpKeepAliveTimeoutSec,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy for
	// target HTTP proxies.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// ProxyBind: This field only applies when the forwarding rule that references
	// this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
	// When this field is set to true, Envoy proxies set up inbound traffic
	// interception and bind to the IP address and port specified in the forwarding
	// rule. This is generally useful when using Traffic Director to configure
	// Envoy as a gateway or middle proxy (in other words, not a sidecar proxy).
	// The Envoy proxy listens for inbound requests and handles requests when it
	// receives them. The default is false.
	ProxyBind bool `json:"proxyBind,omitempty"`
	// Region: [Output Only] URL of the region where the regional Target HTTP Proxy
	// resides. This field is not applicable to global Target HTTP Proxies.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// UrlMap: URL to the UrlMap resource that defines the mapping from URL to the
	// BackendService.
	UrlMap string `json:"urlMap,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxy) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpProxyAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetHttpProxiesScopedList resources.
	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxyAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpProxyAggregatedListWarning: [Output Only] Informational warning
// message.
type TargetHttpProxyAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxyAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpProxyAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxyAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpProxyList: A list of TargetHttpProxy resources.
type TargetHttpProxyList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetHttpProxy resources.
	Items []*TargetHttpProxy `json:"items,omitempty"`
	// Kind: Type of resource. Always compute#targetHttpProxyList for lists of
	// target HTTP proxies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxyList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpProxyListWarning: [Output Only] Informational warning message.
type TargetHttpProxyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpProxyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpProxyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxiesScopedList struct {
	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this scope.
	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxiesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpsProxiesScopedListWarning: Informational warning which replaces
// the list of backend services when the list is empty.
type TargetHttpsProxiesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxiesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxiesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxiesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxiesSetCertificateMapRequest struct {
	// CertificateMap: URL of the Certificate Map to associate with this
	// TargetHttpsProxy. Accepted format is
	// //certificatemanager.googleapis.com/projects/{project
	// }/locations/{location}/certificateMaps/{resourceName}.
	CertificateMap string `json:"certificateMap,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CertificateMap") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CertificateMap") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxiesSetCertificateMapRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxiesSetCertificateMapRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxiesSetQuicOverrideRequest struct {
	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
	//
	// Possible values:
	//   "DISABLE" - The load balancer will not attempt to negotiate QUIC with
	// clients.
	//   "ENABLE" - The load balancer will attempt to negotiate QUIC with clients.
	//   "NONE" - No overrides to the default QUIC policy. This option is implicit
	// if no QUIC override has been specified in the request.
	QuicOverride string `json:"quicOverride,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuicOverride") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxiesSetSslCertificatesRequest struct {
	// SslCertificates: New set of SslCertificate resources to associate with this
	// TargetHttpsProxy resource. At least one SSL certificate must be specified.
	// Currently, you may specify up to 15 SSL certificates.
	SslCertificates []string `json:"sslCertificates,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SslCertificates") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpsProxy: Represents a Target HTTPS Proxy resource. Google Compute
// Engine has two Target HTTPS Proxy resources: * Global
// (/compute/docs/reference/rest/alpha/targetHttpsProxies) * Regional
// (/compute/docs/reference/rest/alpha/regionTargetHttpsProxies) A target HTTPS
// proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are
// used by global external Application Load Balancers, classic Application Load
// Balancers, cross-region internal Application Load Balancers, and Traffic
// Director. * regionTargetHttpProxies are used by regional internal
// Application Load Balancers and regional external Application Load Balancers.
// Forwarding rules reference a target HTTPS proxy, and the target proxy then
// references a URL map. For more information, read Using Target Proxies and
// Forwarding rule concepts.
type TargetHttpsProxy struct {
	// Authentication: [Deprecated] Use serverTlsPolicy instead.
	Authentication string `json:"authentication,omitempty"`
	// Authorization: [Deprecated] Use authorizationPolicy instead.
	Authorization string `json:"authorization,omitempty"`
	// AuthorizationPolicy: Optional. A URL referring to a
	// networksecurity.AuthorizationPolicy resource that describes how the proxy
	// should authorize inbound traffic. If left blank, access will not be
	// restricted by an authorization policy. Refer to the AuthorizationPolicy
	// resource for additional details. authorizationPolicy only applies to a
	// global TargetHttpsProxy attached to globalForwardingRules with the
	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. Note: This field currently
	// has no impact.
	AuthorizationPolicy string `json:"authorizationPolicy,omitempty"`
	// CertificateMap: URL of a certificate map that identifies a certificate map
	// associated with the given target proxy. This field can only be set for
	// Global external Application Load Balancer or Classic Application Load
	// Balancer. For other products use Certificate Manager Certificates instead.
	// If set, sslCertificates will be ignored. Accepted format is
	// //certificatemanager.googleapis.com/projects/{project
	// }/locations/{location}/certificateMaps/{resourceName}.
	CertificateMap string `json:"certificateMap,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field will be
	// ignored when inserting a TargetHttpsProxy. An up-to-date fingerprint must be
	// provided in order to patch the TargetHttpsProxy; otherwise, the request will
	// fail with error 412 conditionNotMet. To see the latest fingerprint, make a
	// get() request to retrieve the TargetHttpsProxy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HttpFilters: URLs to networkservices.HttpFilter resources enabled for xDS
	// clients using this configuration. For example,
	// https://networkservices.googleapis.com/beta/projects/project/locations/
	// location/httpFilters/httpFilter Only filters that handle outbound connection
	// and stream events may be specified. These filters work in conjunction with a
	// default set of HTTP filters that may already be configured by Traffic
	// Director. Traffic Director will determine the final location of these
	// filters within xDS configuration based on the name of the HTTP filter. If
	// Traffic Director positions multiple filters at the same location, those
	// filters will be in the same order as specified in this list. httpFilters
	// only applies for loadbalancers with loadBalancingScheme set to
	// INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
	HttpFilters []string `json:"httpFilters,omitempty"`
	// HttpKeepAliveTimeoutSec: Specifies how long to keep a connection open, after
	// completing a response, while there is no matching traffic (in seconds). If
	// an HTTP keep-alive is not specified, a default value (610 seconds) will be
	// used. For global external Application Load Balancers, the minimum allowed
	// value is 5 seconds and the maximum allowed value is 1200 seconds. For
	// classic Application Load Balancers, this option is not supported.
	HttpKeepAliveTimeoutSec int64 `json:"httpKeepAliveTimeoutSec,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy for
	// target HTTPS proxies.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// ProxyBind: This field only applies when the forwarding rule that references
	// this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
	// When this field is set to true, Envoy proxies set up inbound traffic
	// interception and bind to the IP address and port specified in the forwarding
	// rule. This is generally useful when using Traffic Director to configure
	// Envoy as a gateway or middle proxy (in other words, not a sidecar proxy).
	// The Envoy proxy listens for inbound requests and handles requests when it
	// receives them. The default is false.
	ProxyBind bool `json:"proxyBind,omitempty"`
	// QuicOverride: Specifies the QUIC override policy for this TargetHttpsProxy
	// resource. This setting determines whether the load balancer attempts to
	// negotiate QUIC with clients. You can specify NONE, ENABLE, or DISABLE. -
	// When quic-override is set to NONE, Google manages whether QUIC is used. -
	// When quic-override is set to ENABLE, the load balancer uses QUIC when
	// possible. - When quic-override is set to DISABLE, the load balancer doesn't
	// use QUIC. - If the quic-override flag is not specified, NONE is implied.
	//
	// Possible values:
	//   "DISABLE" - The load balancer will not attempt to negotiate QUIC with
	// clients.
	//   "ENABLE" - The load balancer will attempt to negotiate QUIC with clients.
	//   "NONE" - No overrides to the default QUIC policy. This option is implicit
	// if no QUIC override has been specified in the request.
	QuicOverride string `json:"quicOverride,omitempty"`
	// Region: [Output Only] URL of the region where the regional TargetHttpsProxy
	// resides. This field is not applicable to global TargetHttpsProxies.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ServerTlsPolicy: Optional. A URL referring to a
	// networksecurity.ServerTlsPolicy resource that describes how the proxy should
	// authenticate inbound traffic. serverTlsPolicy only applies to a global
	// TargetHttpsProxy attached to globalForwardingRules with the
	// loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or
	// EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted
	// with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED
	// loadBalancingScheme consult ServerTlsPolicy documentation. If left blank,
	// communications are not encrypted.
	ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"`
	// SslCertificates: URLs to SslCertificate resources that are used to
	// authenticate connections between users and the load balancer. At least one
	// SSL certificate must be specified. SslCertificates do not apply when the
	// load balancing scheme is set to INTERNAL_SELF_MANAGED. The URLs should refer
	// to a SSL Certificate resource or Certificate Manager Certificate resource.
	// Mixing Classic Certificates and Certificate Manager Certificates is not
	// allowed. Certificate Manager Certificates must include the
	// certificatemanager API. Certificate Manager Certificates are not supported
	// by Global external Application Load Balancer or Classic Application Load
	// Balancer, use certificate_map instead. Currently, you may specify up to 15
	// Classic SSL Certificates. Certificate Manager Certificates accepted formats
	// are: - //certificatemanager.googleapis.com/projects/{project}/locations/{
	// location}/certificates/{resourceName}. -
	// https://certificatemanager.googleapis.com/v1alpha1/projects/{project
	// }/locations/{location}/certificates/{resourceName}.
	SslCertificates []string `json:"sslCertificates,omitempty"`
	// SslPolicy: URL of SslPolicy resource that will be associated with the
	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has no
	// SSL policy configured.
	SslPolicy string `json:"sslPolicy,omitempty"`
	// TlsEarlyData:  Specifies whether TLS 1.3 0-RTT Data ("Early Data") should be
	// accepted for this service. Early Data allows a TLS resumption handshake to
	// include the initial application payload (a HTTP request) alongside the
	// handshake, reducing the effective round trips to "zero". This applies to TLS
	// 1.3 connections over TCP (HTTP/2) as well as over UDP (QUIC/h3). This can
	// improve application performance, especially on networks where interruptions
	// may be common, such as on mobile. Requests with Early Data will have the
	// "Early-Data" HTTP header set on the request, with a value of "1", to allow
	// the backend to determine whether Early Data was included. Note: TLS Early
	// Data may allow requests to be replayed, as the data is sent to the backend
	// before the handshake has fully completed. Applications that allow idempotent
	// HTTP methods to make non-idempotent changes, such as a GET request updating
	// a database, should not accept Early Data on those requests, and reject
	// requests with the "Early-Data: 1" HTTP header by returning a HTTP 425 (Too
	// Early) status code, in order to remain RFC compliant. The default value is
	// DISABLED.
	//
	// Possible values:
	//   "DISABLED" - TLS 1.3 Early Data is not advertised, and any (invalid)
	// attempts to send Early Data will be rejected by closing the connection.
	//   "PERMISSIVE" - This enables TLS 1.3 0-RTT, and only allows Early Data to
	// be included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE).
	// This mode does not enforce any other limitations for requests with Early
	// Data. The application owner should validate that Early Data is acceptable
	// for a given request path.
	//   "STRICT" - This enables TLS 1.3 0-RTT, and only allows Early Data to be
	// included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE)
	// without query parameters. Requests that send Early Data with non-idempotent
	// HTTP methods or with query parameters will be rejected with a HTTP 425.
	TlsEarlyData string `json:"tlsEarlyData,omitempty"`
	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource that
	// defines the mapping from URL to the BackendService. For example, the
	// following are all valid URLs for specifying a URL map: -
	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map -
	// projects/project/global/urlMaps/url-map - global/urlMaps/url-map
	UrlMap string `json:"urlMap,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Authentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Authentication") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxy) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxyAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetHttpsProxiesScopedList resources.
	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxyAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational warning
// message.
type TargetHttpsProxyAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxyAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxyAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxyAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
type TargetHttpsProxyList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetHttpsProxy resources.
	Items []*TargetHttpsProxy `json:"items,omitempty"`
	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists of
	// target HTTPS proxies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetHttpsProxyListWarning: [Output Only] Informational warning message.
type TargetHttpsProxyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetHttpsProxyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetHttpsProxyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetInstance: Represents a Target Instance resource. You can use a target
// instance to handle traffic for one or more forwarding rules, which is ideal
// for forwarding protocol traffic that is managed by a single source. For
// example, ESP, AH, TCP, or UDP. For more information, read Target instances.
type TargetInstance struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Instance: A URL to the virtual machine instance that handles traffic for
	// this target instance. When creating a target instance, you can provide the
	// fully-qualified URL or a valid partial URL to the desired virtual machine.
	// For example, the following are all valid URLs: -
	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
	// /instances/instance - projects/project/zones/zone/instances/instance -
	// zones/zone/instances/instance
	Instance string `json:"instance,omitempty"`
	// Kind: [Output Only] The type of the resource. Always compute#targetInstance
	// for target instances.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// NatPolicy: Must have a value of NO_NAT. Protocol forwarding delivers packets
	// while preserving the destination IP address of the forwarding rule
	// referencing the target instance.
	//
	// Possible values:
	//   "NO_NAT" - No NAT performed.
	NatPolicy string `json:"natPolicy,omitempty"`
	// Network: The URL of the network this target instance uses to forward
	// traffic. If not specified, the traffic will be forwarded to the network that
	// the default network interface belongs to.
	Network string `json:"network,omitempty"`
	// SecurityPolicy: [Output Only] The resource URL for the security policy
	// associated with this target instance.
	SecurityPolicy string `json:"securityPolicy,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Zone: [Output Only] URL of the zone where the target instance resides. You
	// must specify this field as part of the HTTP request URL. It is not settable
	// as a field in the request body.
	Zone string `json:"zone,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstance) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstance
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetInstanceAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetInstance resources.
	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstanceAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetInstanceAggregatedListWarning: [Output Only] Informational warning
// message.
type TargetInstanceAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstanceAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetInstanceAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstanceAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetInstanceList: Contains a list of TargetInstance resources.
type TargetInstanceList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetInstance resources.
	Items []*TargetInstance `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetInstanceListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstanceList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstanceList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetInstanceListWarning: [Output Only] Informational warning message.
type TargetInstanceListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstanceListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetInstanceListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstanceListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetInstancesScopedList struct {
	// TargetInstances: A list of target instances contained in this scope.
	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
	// Warning: Informational warning which replaces the list of addresses when the
	// list is empty.
	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetInstances") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstancesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetInstancesScopedListWarning: Informational warning which replaces the
// list of addresses when the list is empty.
type TargetInstancesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstancesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetInstancesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetInstancesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetPool: Represents a Target Pool resource. Target pools are used with
// external passthrough Network Load Balancers. A target pool references member
// instances, an associated legacy HttpHealthCheck resource, and, optionally, a
// backup target pool. For more information, read Using target pools.
type TargetPool struct {
	// BackupPool: The server-defined URL for the resource. This field is
	// applicable only when the containing target pool is serving a forwarding rule
	// as the primary pool, and its failoverRatio field is properly set to a value
	// between [0, 1]. backupPool and failoverRatio together define the fallback
	// behavior of the primary target pool: if the ratio of the healthy instances
	// in the primary pool is at or below failoverRatio, traffic arriving at the
	// load-balanced IP will be directed to the backup pool. In case where
	// failoverRatio and backupPool are not set, or all the instances in the backup
	// pool are unhealthy, the traffic will be directed back to the primary pool in
	// the "force" mode, where traffic will be spread to the healthy instances with
	// the best effort, or to all instances when no instance is healthy.
	BackupPool string `json:"backupPool,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// FailoverRatio: This field is applicable only when the containing target pool
	// is serving a forwarding rule as the primary pool (i.e., not as a backup pool
	// to some other target pool). The value of the field must be in [0, 1]. If
	// set, backupPool must also be set. They together define the fallback behavior
	// of the primary target pool: if the ratio of the healthy instances in the
	// primary pool is at or below this number, traffic arriving at the
	// load-balanced IP will be directed to the backup pool. In case where
	// failoverRatio is not set or all the instances in the backup pool are
	// unhealthy, the traffic will be directed back to the primary pool in the
	// "force" mode, where traffic will be spread to the healthy instances with the
	// best effort, or to all instances when no instance is healthy.
	FailoverRatio float64 `json:"failoverRatio,omitempty"`
	// HealthChecks: The URL of the HttpHealthCheck resource. A member instance in
	// this pool is considered healthy if and only if the health checks pass. Only
	// legacy HttpHealthChecks are supported. Only one health check may be
	// specified.
	HealthChecks []string `json:"healthChecks,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Instances: A list of resource URLs to the virtual machine instances serving
	// this pool. They must live in zones contained in the same region as this
	// pool.
	Instances []string `json:"instances,omitempty"`
	// Kind: [Output Only] Type of the resource. Always compute#targetPool for
	// target pools.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] URL of the region where the target pool resides.
	Region string `json:"region,omitempty"`
	// SecurityPolicy: [Output Only] The resource URL for the security policy
	// associated with this target pool.
	SecurityPolicy string `json:"securityPolicy,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: [Output Only] Server-defined URL for this resource with the
	// resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SessionAffinity: Session affinity option, must be one of the following
	// values: NONE: Connections from the same client IP may go to any instance in
	// the pool. CLIENT_IP: Connections from the same client IP will go to the same
	// instance in the pool while that instance remains healthy. CLIENT_IP_PROTO:
	// Connections from the same client IP with the same IP protocol will go to the
	// same instance in the pool while that instance remains healthy.
	//
	// Possible values:
	//   "CLIENT_IP" - 2-tuple hash on packet's source and destination IP
	// addresses. Connections from the same source IP address to the same
	// destination IP address will be served by the same backend VM while that VM
	// remains healthy.
	//   "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source IP
	// address. Connections from the same source IP address will be served by the
	// same backend VM while that VM remains healthy. This option can only be used
	// for Internal TCP/UDP Load Balancing.
	//   "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and destination
	// IP addresses, IP protocol, and source and destination ports. Connections for
	// the same IP protocol from the same source IP address and port to the same
	// destination IP address and port will be served by the same backend VM while
	// that VM remains healthy. This option cannot be used for HTTP(S) load
	// balancing.
	//   "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination IP
	// addresses, and IP protocol. Connections for the same IP protocol from the
	// same source IP address to the same destination IP address will be served by
	// the same backend VM while that VM remains healthy. This option cannot be
	// used for HTTP(S) load balancing.
	//   "GENERATED_COOKIE" - Hash based on a cookie generated by the L7
	// loadbalancer. Only valid for HTTP(S) load balancing.
	//   "HEADER_FIELD" - The hash is based on a user specified header field.
	//   "HTTP_COOKIE" - The hash is based on a user provided cookie.
	//   "NONE" - No session affinity. Connections from the same client IP may go
	// to any instance in the pool.
	//   "STRONG_COOKIE_AFFINITY" - Strong cookie-based affinity. Connections
	// bearing the same cookie will be served by the same backend VM while that VM
	// remains healthy, as long as the cookie has not expired.
	SessionAffinity string `json:"sessionAffinity,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "BackupPool") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackupPool") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPool) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPool
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *TargetPool) UnmarshalJSON(data []byte) error {
	type NoMethod TargetPool
	var s1 struct {
		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.FailoverRatio = float64(s1.FailoverRatio)
	return nil
}

type TargetPoolAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetPool resources.
	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#targetPoolAggregatedList for aggregated lists of target pools.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetPoolAggregatedListWarning: [Output Only] Informational warning
// message.
type TargetPoolAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolInstanceHealth struct {
	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#targetPoolInstanceHealth when checking the health of an instance.
	Kind string `json:"kind,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthStatus") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolInstanceHealth
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetPoolList: Contains a list of TargetPool resources.
type TargetPoolList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetPool resources.
	Items []*TargetPool `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#targetPoolList for
	// lists of target pools.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetPoolListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetPoolListWarning: [Output Only] Informational warning message.
type TargetPoolListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetPoolListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolsAddHealthCheckRequest struct {
	// HealthChecks: The HttpHealthCheck to add to the target pool.
	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthChecks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolsAddHealthCheckRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolsAddInstanceRequest struct {
	// Instances: A full or partial URL to an instance to add to this target pool.
	// This can be a full or partial URL. For example, the following are valid
	// URLs: - https://www.googleapis.com/compute/v1/projects/project-id/zones/zone
	// /instances/instance-name -
	// projects/project-id/zones/zone/instances/instance-name -
	// zones/zone/instances/instance-name
	Instances []*InstanceReference `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolsAddInstanceRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolsRemoveHealthCheckRequest struct {
	// HealthChecks: Health check URL to be removed. This can be a full or valid
	// partial URL. For example, the following are valid URLs: -
	// https://www.googleapis.com/compute/beta/projects/project
	// /global/httpHealthChecks/health-check -
	// projects/project/global/httpHealthChecks/health-check -
	// global/httpHealthChecks/health-check
	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthChecks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolsRemoveHealthCheckRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolsRemoveInstanceRequest struct {
	// Instances: URLs of the instances to be removed from target pool.
	Instances []*InstanceReference `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Instances") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Instances") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolsRemoveInstanceRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolsScopedList struct {
	// TargetPools: A list of target pools contained in this scope.
	TargetPools []*TargetPool `json:"targetPools,omitempty"`
	// Warning: Informational warning which replaces the list of addresses when the
	// list is empty.
	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetPools") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetPools") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetPoolsScopedListWarning: Informational warning which replaces the list
// of addresses when the list is empty.
type TargetPoolsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetPoolsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetPoolsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetReference struct {
	Target string `json:"target,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Target") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Target") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetReference) MarshalJSON() ([]byte, error) {
	type NoMethod TargetReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetSslProxiesSetBackendServiceRequest struct {
	// Service: The URL of the new BackendService resource for the targetSslProxy.
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Service") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Service") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxiesSetBackendServiceRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetSslProxiesSetCertificateMapRequest struct {
	// CertificateMap: URL of the Certificate Map to associate with this
	// TargetSslProxy. Accepted format is
	// //certificatemanager.googleapis.com/projects/{project
	// }/locations/{location}/certificateMaps/{resourceName}.
	CertificateMap string `json:"certificateMap,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CertificateMap") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CertificateMap") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxiesSetCertificateMapRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxiesSetCertificateMapRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetSslProxiesSetProxyHeaderRequest struct {
	// ProxyHeader: The new type of proxy header to append before sending data to
	// the backend. NONE or PROXY_V1 are allowed.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProxyHeader") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxiesSetProxyHeaderRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetSslProxiesSetSslCertificatesRequest struct {
	// SslCertificates: New set of URLs to SslCertificate resources to associate
	// with this TargetSslProxy. At least one SSL certificate must be specified.
	// Currently, you may specify up to 15 SSL certificates.
	SslCertificates []string `json:"sslCertificates,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SslCertificates") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxiesSetSslCertificatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetSslProxy: Represents a Target SSL Proxy resource. A target SSL proxy
// is a component of a Proxy Network Load Balancer. The forwarding rule
// references the target SSL proxy, and the target proxy then references a
// backend service. For more information, read Proxy Network Load Balancer
// overview.
type TargetSslProxy struct {
	// CertificateMap: URL of a certificate map that identifies a certificate map
	// associated with the given target proxy. This field can only be set for
	// global target proxies. If set, sslCertificates will be ignored. Accepted
	// format is //certificatemanager.googleapis.com/projects/{project
	// }/locations/{location}/certificateMaps/{resourceName}.
	CertificateMap string `json:"certificateMap,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#targetSslProxy for
	// target SSL proxies.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// ProxyHeader: Specifies the type of proxy header to append before sending
	// data to the backend, either NONE or PROXY_V1. The default is NONE.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Service: URL to the BackendService resource.
	Service string `json:"service,omitempty"`
	// SslCertificates: URLs to SslCertificate resources that are used to
	// authenticate connections to Backends. At least one SSL certificate must be
	// specified. Currently, you may specify up to 15 SSL certificates.
	// sslCertificates do not apply when the load balancing scheme is set to
	// INTERNAL_SELF_MANAGED.
	SslCertificates []string `json:"sslCertificates,omitempty"`
	// SslPolicy: URL of SslPolicy resource that will be associated with the
	// TargetSslProxy resource. If not set, the TargetSslProxy resource will not
	// have any SSL policy configured.
	SslPolicy string `json:"sslPolicy,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CertificateMap") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CertificateMap") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxy) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetSslProxyList: Contains a list of TargetSslProxy resources.
type TargetSslProxyList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetSslProxy resources.
	Items []*TargetSslProxy `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxyList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetSslProxyListWarning: [Output Only] Informational warning message.
type TargetSslProxyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetSslProxyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetSslProxyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetTcpProxiesScopedList struct {
	// TargetTcpProxies: A list of TargetTcpProxies contained in this scope.
	TargetTcpProxies []*TargetTcpProxy `json:"targetTcpProxies,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *TargetTcpProxiesScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetTcpProxies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetTcpProxies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxiesScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxiesScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetTcpProxiesScopedListWarning: Informational warning which replaces the
// list of backend services when the list is empty.
type TargetTcpProxiesScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetTcpProxiesScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxiesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetTcpProxiesScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxiesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetTcpProxiesSetBackendServiceRequest struct {
	// Service: The URL of the new BackendService resource for the targetTcpProxy.
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Service") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Service") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxiesSetBackendServiceRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetTcpProxiesSetProxyHeaderRequest struct {
	// ProxyHeader: The new type of proxy header to append before sending data to
	// the backend. NONE or PROXY_V1 are allowed.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProxyHeader") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetTcpProxy: Represents a Target TCP Proxy resource. A target TCP proxy
// is a component of a Proxy Network Load Balancer. The forwarding rule
// references the target TCP proxy, and the target proxy then references a
// backend service. For more information, read Proxy Network Load Balancer
// overview.
type TargetTcpProxy struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#targetTcpProxy for
	// target TCP proxies.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// ProxyBind: This field only applies when the forwarding rule that references
	// this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
	// When this field is set to true, Envoy proxies set up inbound traffic
	// interception and bind to the IP address and port specified in the forwarding
	// rule. This is generally useful when using Traffic Director to configure
	// Envoy as a gateway or middle proxy (in other words, not a sidecar proxy).
	// The Envoy proxy listens for inbound requests and handles requests when it
	// receives them. The default is false.
	ProxyBind bool `json:"proxyBind,omitempty"`
	// ProxyHeader: Specifies the type of proxy header to append before sending
	// data to the backend, either NONE or PROXY_V1. The default is NONE.
	//
	// Possible values:
	//   "NONE"
	//   "PROXY_V1"
	ProxyHeader string `json:"proxyHeader,omitempty"`
	// Region: [Output Only] URL of the region where the regional TCP proxy
	// resides. This field is not applicable to global TCP proxy.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Service: URL to the BackendService resource.
	Service string `json:"service,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxy) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetTcpProxyAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetTcpProxiesScopedList resources.
	Items map[string]TargetTcpProxiesScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetTcpProxyAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxyAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxyAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetTcpProxyAggregatedListWarning: [Output Only] Informational warning
// message.
type TargetTcpProxyAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetTcpProxyAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxyAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetTcpProxyAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxyAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
type TargetTcpProxyList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetTcpProxy resources.
	Items []*TargetTcpProxy `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxyList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetTcpProxyListWarning: [Output Only] Informational warning message.
type TargetTcpProxyListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetTcpProxyListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetTcpProxyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetVpnGateway: Represents a Target VPN Gateway resource. The target VPN
// gateway resource represents a Classic Cloud VPN gateway. For more
// information, read the the Cloud VPN Overview.
type TargetVpnGateway struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
	// resources. ForwardingRules are created using compute.forwardingRules.insert
	// and associated with a VPN gateway.
	ForwardingRules []string `json:"forwardingRules,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway for
	// target VPN gateways.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// TargetVpnGateway, which is essentially a hash of the labels set used for
	// optimistic locking. The fingerprint is initially generated by Compute Engine
	// and changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a TargetVpnGateway.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Network: URL of the network to which this VPN gateway is attached. Provided
	// by the client when the VPN gateway is created.
	Network string `json:"network,omitempty"`
	// Region: [Output Only] URL of the region where the target VPN gateway
	// resides. You must specify this field as part of the HTTP request URL. It is
	// not settable as a field in the request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Status: [Output Only] The status of the VPN gateway, which can be one of the
	// following: CREATING, READY, FAILED, or DELETING.
	//
	// Possible values:
	//   "CREATING"
	//   "DELETING"
	//   "FAILED"
	//   "READY"
	Status string `json:"status,omitempty"`
	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are
	// created using the compute.vpntunnels.insert method and associated with a VPN
	// gateway.
	Tunnels []string `json:"tunnels,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGateway) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGateway
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetVpnGatewayAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetVpnGateway resources.
	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway for
	// target VPN gateways.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewayAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational warning
// message.
type TargetVpnGatewayAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewayAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetVpnGatewayAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewayAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
type TargetVpnGatewayList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of TargetVpnGateway resources.
	Items []*TargetVpnGateway `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway for
	// target VPN gateways.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewayList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetVpnGatewayListWarning: [Output Only] Informational warning message.
type TargetVpnGatewayListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewayListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetVpnGatewayListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewayListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetVpnGatewaysScopedList struct {
	// TargetVpnGateways: [Output Only] A list of target VPN gateways contained in
	// this scope.
	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// addresses when the list is empty.
	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetVpnGateways") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewaysScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TargetVpnGatewaysScopedListWarning: [Output Only] Informational warning
// which replaces the list of addresses when the list is empty.
type TargetVpnGatewaysScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewaysScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TargetVpnGatewaysScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewaysScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TestFailure struct {
	// ActualOutputUrl: The actual output URL evaluated by a load balancer
	// containing the scheme, host, path and query parameters.
	ActualOutputUrl string `json:"actualOutputUrl,omitempty"`
	// ActualRedirectResponseCode: Actual HTTP status code for rule with
	// `urlRedirect` calculated by load balancer
	ActualRedirectResponseCode int64 `json:"actualRedirectResponseCode,omitempty"`
	// ActualService: BackendService or BackendBucket returned by load balancer.
	ActualService string `json:"actualService,omitempty"`
	// ExpectedOutputUrl: The expected output URL evaluated by a load balancer
	// containing the scheme, host, path and query parameters.
	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
	// ExpectedRedirectResponseCode: Expected HTTP status code for rule with
	// `urlRedirect` calculated by load balancer
	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
	// ExpectedService: Expected BackendService or BackendBucket resource the given
	// URL should be mapped to.
	ExpectedService string `json:"expectedService,omitempty"`
	// Headers: HTTP headers of the request.
	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
	// Host: Host portion of the URL.
	Host string `json:"host,omitempty"`
	// Path: Path portion including query parameters in the URL.
	Path string `json:"path,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActualOutputUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActualOutputUrl") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TestFailure) MarshalJSON() ([]byte, error) {
	type NoMethod TestFailure
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TestPermissionsRequest struct {
	// Permissions: The set of permissions to check for the 'resource'. Permissions
	// with wildcards (such as '*' or 'storage.*') are not allowed.
	Permissions []string `json:"permissions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Permissions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Permissions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TestPermissionsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod TestPermissionsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type TestPermissionsResponse struct {
	// Permissions: A subset of `TestPermissionsRequest.permissions` that the
	// caller is allowed.
	Permissions []string `json:"permissions,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Permissions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Permissions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TestPermissionsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod TestPermissionsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TlsCertificateContext: [Deprecated] Defines the mechanism to obtain the
// client or server certificate. Defines the mechanism to obtain the client or
// server certificate.
type TlsCertificateContext struct {
	// CertificatePaths: Specifies the certificate and private key paths. This
	// field is applicable only if tlsCertificateSource is set to USE_PATH.
	CertificatePaths *TlsCertificatePaths `json:"certificatePaths,omitempty"`
	// CertificateSource: Defines how TLS certificates are obtained.
	//
	// Possible values:
	//   "INVALID"
	//   "USE_PATH" - USE_PATH specifies that the certificates and private key are
	// obtained from a locally mounted filesystem path.
	//   "USE_SDS" - USE_SDS specifies that the certificates and private key are
	// obtained from a SDS server.
	CertificateSource string `json:"certificateSource,omitempty"`
	// SdsConfig: Specifies the config to retrieve certificates through SDS. This
	// field is applicable only if tlsCertificateSource is set to USE_SDS.
	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CertificatePaths") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CertificatePaths") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TlsCertificateContext) MarshalJSON() ([]byte, error) {
	type NoMethod TlsCertificateContext
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TlsCertificatePaths: [Deprecated] The paths to the mounted TLS Certificates
// and private key. The paths to the mounted TLS Certificates and private key.
type TlsCertificatePaths struct {
	// CertificatePath: The path to the file holding the client or server TLS
	// certificate to use.
	CertificatePath string `json:"certificatePath,omitempty"`
	// PrivateKeyPath: The path to the file holding the client or server private
	// key.
	PrivateKeyPath string `json:"privateKeyPath,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CertificatePath") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TlsCertificatePaths) MarshalJSON() ([]byte, error) {
	type NoMethod TlsCertificatePaths
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TlsContext: [Deprecated] The TLS settings for the client or server. The TLS
// settings for the client or server.
type TlsContext struct {
	// CertificateContext: Defines the mechanism to obtain the client or server
	// certificate.
	CertificateContext *TlsCertificateContext `json:"certificateContext,omitempty"`
	// ValidationContext: Defines the mechanism to obtain the Certificate Authority
	// certificate to validate the client/server certificate. If omitted, the proxy
	// will not validate the server or client certificate.
	ValidationContext *TlsValidationContext `json:"validationContext,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CertificateContext") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CertificateContext") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TlsContext) MarshalJSON() ([]byte, error) {
	type NoMethod TlsContext
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TlsValidationContext: [Deprecated] Defines the mechanism to obtain the
// Certificate Authority certificate to validate the client/server certificate.
// validate the client/server certificate.
type TlsValidationContext struct {
	// CertificatePath: The path to the file holding the CA certificate to validate
	// the client or server certificate.
	CertificatePath string `json:"certificatePath,omitempty"`
	// SdsConfig: Specifies the config to retrieve certificates through SDS. This
	// field is applicable only if tlsCertificateSource is set to USE_SDS.
	SdsConfig *SdsConfig `json:"sdsConfig,omitempty"`
	// ValidationSource: Defines how TLS certificates are obtained.
	//
	// Possible values:
	//   "INVALID"
	//   "USE_PATH" - USE_PATH specifies that the certificates and private key are
	// obtained from a locally mounted filesystem path.
	//   "USE_SDS" - USE_SDS specifies that the certificates and private key are
	// obtained from a SDS server.
	ValidationSource string `json:"validationSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CertificatePath") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CertificatePath") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s TlsValidationContext) MarshalJSON() ([]byte, error) {
	type NoMethod TlsValidationContext
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UDPHealthCheck struct {
	// Port: The UDP port number to which the health check prober sends packets.
	// Valid values are 1 through 65535.
	Port int64 `json:"port,omitempty"`
	// PortName: Not supported.
	PortName string `json:"portName,omitempty"`
	// Request: Raw data of request to send in payload of UDP packet. It is an
	// error if this is empty. The request data can only be ASCII.
	Request string `json:"request,omitempty"`
	// Response: The bytes to match against the beginning of the response data. It
	// is an error if this is empty. The response data can only be ASCII.
	Response string `json:"response,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Port") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Port") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UDPHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod UDPHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type Uint128 struct {
	High uint64 `json:"high,omitempty,string"`
	Low  uint64 `json:"low,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "High") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "High") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Uint128) MarshalJSON() ([]byte, error) {
	type NoMethod Uint128
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UpcomingMaintenance: Upcoming Maintenance notification information.
type UpcomingMaintenance struct {
	// CanReschedule: Indicates if the maintenance can be customer triggered.
	CanReschedule bool `json:"canReschedule,omitempty"`
	// Date: [Output Only] The date when the maintenance will take place. This
	// value is in RFC3339 text format. DEPRECATED: Use window_start_time instead.
	Date string `json:"date,omitempty"`
	// LatestWindowStartTime: The latest time for the planned maintenance window to
	// start. This timestamp value is in RFC3339 text format.
	LatestWindowStartTime string `json:"latestWindowStartTime,omitempty"`
	// Possible values:
	//   "ONGOING" - There is ongoing maintenance on this VM.
	//   "PENDING" - There is pending maintenance.
	//   "UNKNOWN" - Unknown maintenance status. Do not use this value.
	MaintenanceStatus string `json:"maintenanceStatus,omitempty"`
	// StartTimeWindow: [Output Only] The start time window of the maintenance
	// disruption. DEPRECATED: Use window_start_time instead. TimeWindow is a
	// container for two strings that represent timestamps in
	// "yyyy-MM-dd'T'HH:mm:ssZ" text format.
	StartTimeWindow *UpcomingMaintenanceTimeWindow `json:"startTimeWindow,omitempty"`
	// Time: [Output Only] The time when the maintenance will take place. This
	// value is in RFC3339 text format. DEPRECATED: Use window_start_time instead.
	Time string `json:"time,omitempty"`
	// Type: Defines the type of maintenance.
	//
	// Possible values:
	//   "SCHEDULED" - Scheduled maintenance (e.g. maintenance after uptime
	// guarantee is complete).
	//   "UNKNOWN_TYPE" - No type specified. Do not use this value.
	//   "UNSCHEDULED" - Unscheduled maintenance (e.g. emergency maintenance during
	// uptime guarantee).
	Type string `json:"type,omitempty"`
	// WindowEndTime: The time by which the maintenance disruption will be
	// completed. This timestamp value is in RFC3339 text format.
	WindowEndTime string `json:"windowEndTime,omitempty"`
	// WindowStartTime: The current start time of the maintenance window. This
	// timestamp value is in RFC3339 text format.
	WindowStartTime string `json:"windowStartTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanReschedule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanReschedule") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UpcomingMaintenance) MarshalJSON() ([]byte, error) {
	type NoMethod UpcomingMaintenance
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UpcomingMaintenanceTimeWindow: Represents a window of time using two
// timestamps: `earliest` and `latest`.
type UpcomingMaintenanceTimeWindow struct {
	Earliest string `json:"earliest,omitempty"`
	Latest   string `json:"latest,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Earliest") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Earliest") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UpcomingMaintenanceTimeWindow) MarshalJSON() ([]byte, error) {
	type NoMethod UpcomingMaintenanceTimeWindow
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMap: Represents a URL Map resource. Compute Engine has two URL Map
// resources: * Global (/compute/docs/reference/rest/alpha/urlMaps) * Regional
// (/compute/docs/reference/rest/alpha/regionUrlMaps) A URL map resource is a
// component of certain types of cloud load balancers and Traffic Director: *
// urlMaps are used by global external Application Load Balancers, classic
// Application Load Balancers, and cross-region internal Application Load
// Balancers. * regionUrlMaps are used by internal Application Load Balancers,
// regional external Application Load Balancers and regional internal
// Application Load Balancers. For a list of supported URL map features by the
// load balancer type, see the Load balancing features: Routing and traffic
// management table. For a list of supported URL map features for Traffic
// Director, see the Traffic Director features: Routing and traffic management
// table. This resource defines mappings from hostnames and URL paths to either
// a backend service or a backend bucket. To use the global urlMaps resource,
// the backend service must have a loadBalancingScheme of either EXTERNAL or
// INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend
// service must have a loadBalancingScheme of INTERNAL_MANAGED. For more
// information, read URL Map Concepts.
type UrlMap struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DefaultCustomErrorResponsePolicy: defaultCustomErrorResponsePolicy specifies
	// how the Load Balancer returns error responses when BackendServiceor
	// BackendBucket responds with an error. This policy takes effect at the load
	// balancer level and applies only when no policy has been defined for the
	// error code at lower levels like PathMatcher, RouteRule and PathRule within
	// this UrlMap. For example, consider a UrlMap with the following
	// configuration: - defaultCustomErrorResponsePolicy containing policies for
	// responding to 5xx and 4xx errors - A PathMatcher configured for
	// *.example.com has defaultCustomErrorResponsePolicy for 4xx. If a request for
	// http://www.example.com/ encounters a 404, the policy in
	// pathMatcher.defaultCustomErrorResponsePolicy will be enforced. When the
	// request for http://www.example.com/ encounters a 502, the policy in
	// UrlMap.defaultCustomErrorResponsePolicy will be enforced. When a request
	// that does not match any host in *.example.com such as
	// http://www.myotherexample.com/, encounters a 404,
	// UrlMap.defaultCustomErrorResponsePolicy takes effect. When used in
	// conjunction with defaultRouteAction.retryPolicy, retries take precedence.
	// Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is
	// applied. While attempting a retry, if load balancer is successful in
	// reaching the service, the defaultCustomErrorResponsePolicy is ignored and
	// the response from the service is returned to the client.
	// defaultCustomErrorResponsePolicy is supported only for global external
	// Application Load Balancers.
	DefaultCustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"defaultCustomErrorResponsePolicy,omitempty"`
	// DefaultRouteAction: defaultRouteAction takes effect when none of the
	// hostRules match. The load balancer performs advanced routing actions, such
	// as URL rewrites and header transformations, before forwarding the request to
	// the selected backend. If defaultRouteAction specifies any
	// weightedBackendServices, defaultService must not be set. Conversely if
	// defaultService is set, defaultRouteAction cannot contain any
	// weightedBackendServices. Only one of defaultRouteAction or
	// defaultUrlRedirect must be set. URL maps for classic Application Load
	// Balancers only support the urlRewrite action within defaultRouteAction.
	// defaultRouteAction has no effect when the URL map is bound to a target gRPC
	// proxy that has the validateForProxyless field set to true.
	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
	// DefaultService: The full or partial URL of the defaultService resource to
	// which traffic is directed if none of the hostRules match. If
	// defaultRouteAction is also specified, advanced routing actions, such as URL
	// rewrites, take effect before sending the request to the backend. However, if
	// defaultService is specified, defaultRouteAction cannot contain any
	// defaultRouteAction.weightedBackendServices. Conversely, if
	// defaultRouteAction specifies any defaultRouteAction.weightedBackendServices,
	// defaultService must not be specified. If defaultService is specified, then
	// set either defaultUrlRedirect , or defaultRouteAction.weightedBackendService
	// Don't set both. defaultService has no effect when the URL map is bound to a
	// target gRPC proxy that has the validateForProxyless field set to true.
	DefaultService string `json:"defaultService,omitempty"`
	// DefaultUrlRedirect: When none of the specified hostRules match, the request
	// is redirected to a URL specified by defaultUrlRedirect. If
	// defaultUrlRedirect is specified, defaultService or defaultRouteAction must
	// not be set. Not supported when the URL map is bound to a target gRPC proxy.
	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// Fingerprint: Fingerprint of this resource. A hash of the contents stored in
	// this object. This field is used in optimistic locking. This field is ignored
	// when inserting a UrlMap. An up-to-date fingerprint must be provided in order
	// to update the UrlMap, otherwise the request will fail with error 412
	// conditionNotMet. To see the latest fingerprint, make a get() request to
	// retrieve a UrlMap.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HeaderAction: Specifies changes to request and response headers that need to
	// take effect for the selected backendService. The headerAction specified here
	// take effect after headerAction specified under pathMatcher. headerAction is
	// not supported for load balancers that have their loadBalancingScheme set to
	// EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy
	// that has validateForProxyless field set to true.
	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
	// HostRules: The list of host rules to use against the URL.
	HostRules []*HostRule `json:"hostRules,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for url
	// maps.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// PathMatchers: The list of named PathMatchers to use against the URL.
	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
	// Region: [Output Only] URL of the region where the regional URL map resides.
	// This field is not applicable to global URL maps. You must specify this field
	// as part of the HTTP request URL. It is not settable as a field in the
	// request body.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Tests: The list of expected URL mapping tests. Request to update the UrlMap
	// succeeds only if all test cases pass. You can specify a maximum of 100 tests
	// per UrlMap. Not supported when the URL map is bound to a target gRPC proxy
	// that has validateForProxyless field set to true.
	Tests []*UrlMapTest `json:"tests,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMap) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMap
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMapList: Contains a list of UrlMap resources.
type UrlMapList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of UrlMap resources.
	Items []*UrlMap `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *UrlMapListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapList) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMapListWarning: [Output Only] Informational warning message.
type UrlMapListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*UrlMapListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapReference struct {
	UrlMap string `json:"urlMap,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UrlMap") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UrlMap") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapReference) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapReference
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMapTest: Message for the expected URL mappings.
type UrlMapTest struct {
	// BackendServiceWeight: The weight to use for the supplied host and path when
	// using advanced routing rules that involve traffic splitting.
	BackendServiceWeight int64 `json:"backendServiceWeight,omitempty"`
	// Description: Description of this test case.
	Description string `json:"description,omitempty"`
	// ExpectedOutputUrl: The expected output URL evaluated by the load balancer
	// containing the scheme, host, path and query parameters. For rules that
	// forward requests to backends, the test passes only when expectedOutputUrl
	// matches the request forwarded by the load balancer to backends. For rules
	// with urlRewrite, the test verifies that the forwarded request matches
	// hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is
	// specified, expectedOutputUrl`s scheme is ignored. For rules with
	// urlRedirect, the test passes only if expectedOutputUrl matches the URL in
	// the load balancer's redirect response. If urlRedirect specifies
	// https_redirect, the test passes only if the scheme in expectedOutputUrl is
	// also set to HTTPS. If urlRedirect specifies strip_query, the test passes
	// only if expectedOutputUrl does not contain any query parameters.
	// expectedOutputUrl is optional when service is specified.
	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
	// ExpectedRedirectResponseCode: For rules with urlRedirect, the test passes
	// only if expectedRedirectResponseCode matches the HTTP status code in load
	// balancer's redirect response. expectedRedirectResponseCode cannot be set
	// when service is set.
	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
	// ExpectedUrlRedirect: The expected URL that should be redirected to for the
	// host and path being tested. [Deprecated] This field is deprecated. Use
	// expected_output_url instead.
	ExpectedUrlRedirect string `json:"expectedUrlRedirect,omitempty"`
	// Headers: HTTP headers for this request. If headers contains a host header,
	// then host must also match the header value.
	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
	// Host: Host portion of the URL. If headers contains a host header, then host
	// must also match the header value.
	Host string `json:"host,omitempty"`
	// Path: Path portion of the URL.
	Path string `json:"path,omitempty"`
	// Service: Expected BackendService or BackendBucket resource the given URL
	// should be mapped to. The service field cannot be set if
	// expectedRedirectResponseCode is set.
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackendServiceWeight") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackendServiceWeight") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapTest) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapTest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMapTestHeader: HTTP headers used in UrlMapTests.
type UrlMapTestHeader struct {
	// Name: Header name.
	Name string `json:"name,omitempty"`
	// Value: Header value.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapTestHeader) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapTestHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMapValidationResult: Message representing the validation result for a
// UrlMap.
type UrlMapValidationResult struct {
	LoadErrors []string `json:"loadErrors,omitempty"`
	// LoadSucceeded: Whether the given UrlMap can be successfully loaded. If
	// false, 'loadErrors' indicates the reasons.
	LoadSucceeded bool           `json:"loadSucceeded,omitempty"`
	TestFailures  []*TestFailure `json:"testFailures,omitempty"`
	// TestPassed: If successfully loaded, this field indicates whether the test
	// passed. If false, 'testFailures's indicate the reason of failure.
	TestPassed bool `json:"testPassed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LoadErrors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapValidationResult) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapValidationResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapsAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of UrlMapsScopedList resources.
	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMapsAggregatedListWarning: [Output Only] Informational warning message.
type UrlMapsAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapsAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapsScopedList struct {
	// UrlMaps: A list of UrlMaps contained in this scope.
	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
	// Warning: Informational warning which replaces the list of backend services
	// when the list is empty.
	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UrlMaps") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UrlMaps") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlMapsScopedListWarning: Informational warning which replaces the list of
// backend services when the list is empty.
type UrlMapsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapsValidateRequest struct {
	// LoadBalancingSchemes: Specifies the load balancer type(s) this validation
	// request is for. Use EXTERNAL_MANAGED for global external Application Load
	// Balancers and regional external Application Load Balancers. Use EXTERNAL for
	// classic Application Load Balancers. Use INTERNAL_MANAGED for internal
	// Application Load Balancers. For more information, refer to Choosing a load
	// balancer. If unspecified, the load balancing scheme will be inferred from
	// the backend service resources this URL map references. If that can not be
	// inferred (for example, this URL map only references backend buckets, or this
	// Url map is for rewrites and redirects only and doesn't reference any
	// backends), EXTERNAL will be used as the default type. If specified, the
	// scheme(s) must not conflict with the load balancing scheme of the backend
	// service resources this Url map references.
	//
	// Possible values:
	//   "EXTERNAL" - Signifies that this will be used for classic Application Load
	// Balancers.
	//   "EXTERNAL_MANAGED" - Signifies that this will be used for Envoy-based
	// global external Application Load Balancers.
	//   "LOAD_BALANCING_SCHEME_UNSPECIFIED" - If unspecified, the validation will
	// try to infer the scheme from the backend service resources this Url map
	// references. If the inference is not possible, EXTERNAL will be used as the
	// default type.
	LoadBalancingSchemes []string `json:"loadBalancingSchemes,omitempty"`
	// Resource: Content of the UrlMap to be validated.
	Resource *UrlMap `json:"resource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LoadBalancingSchemes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LoadBalancingSchemes") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsValidateRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UrlMapsValidateResponse struct {
	Result *UrlMapValidationResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
	type NoMethod UrlMapsValidateResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UrlRewrite: The spec for modifying the path before sending the request to
// the matched backend service.
type UrlRewrite struct {
	// HostRewrite: Before forwarding the request to the selected service, the
	// request's host header is replaced with contents of hostRewrite. The value
	// must be from 1 to 255 characters.
	HostRewrite string `json:"hostRewrite,omitempty"`
	// PathPrefixRewrite: Before forwarding the request to the selected backend
	// service, the matching portion of the request's path is replaced by
	// pathPrefixRewrite. The value must be from 1 to 1024 characters.
	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
	// PathTemplateRewrite:  If specified, the pattern rewrites the URL path (based
	// on the :path header) using the HTTP template syntax. A corresponding
	// path_template_match must be specified. Any template variables must exist in
	// the path_template_match field. - -At least one variable must be specified in
	// the path_template_match field - You can omit variables from the rewritten
	// URL - The * and ** operators cannot be matched unless they have a
	// corresponding variable name - e.g. {format=*} or {var=**}. For example, a
	// path_template_match of /static/{format=**} could be rewritten as
	// /static/content/{format} to prefix /content to the URL. Variables can also
	// be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be
	// rewritten as /content/{format}/{country}/{suffix}. At least one non-empty
	// routeRules[].matchRules[].path_template_match is required. Only one of
	// path_prefix_rewrite or path_template_rewrite may be specified.
	PathTemplateRewrite string `json:"pathTemplateRewrite,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HostRewrite") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UrlRewrite) MarshalJSON() ([]byte, error) {
	type NoMethod UrlRewrite
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UsableSubnetwork: Subnetwork which the current user has
// compute.subnetworks.use permission on.
type UsableSubnetwork struct {
	// ExternalIpv6Prefix: [Output Only] The external IPv6 address range that is
	// assigned to this subnetwork.
	ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"`
	// InternalIpv6Prefix: [Output Only] The internal IPv6 address range that is
	// assigned to this subnetwork.
	InternalIpv6Prefix string `json:"internalIpv6Prefix,omitempty"`
	// IpCidrRange: The range of internal addresses that are owned by this
	// subnetwork.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// Ipv6AccessType: The access type of IPv6 address this subnet holds. It's
	// immutable and can only be specified during creation or the first time the
	// subnet is updated into IPV4_IPV6 dual stack.
	//
	// Possible values:
	//   "EXTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are
	// accessible via the Internet, as well as the VPC network.
	//   "INTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are
	// only accessible over the VPC network.
	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
	// Network: Network URL.
	Network string `json:"network,omitempty"`
	// Purpose: The purpose of the resource. This field can be either PRIVATE,
	// GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
	// PRIVATE is the default purpose for user-created subnets or subnets that are
	// automatically created in auto mode networks. Subnets with purpose set to
	// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks
	// that are reserved for Envoy-based load balancers. A subnet with purpose set
	// to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
	// Connect. If unspecified, the subnet purpose defaults to PRIVATE. The
	// enableFlowLogs field isn't supported if the subnet purpose field is set to
	// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.
	//
	// Possible values:
	//   "AGGREGATE" - Subnetwork used to aggregate multiple private subnetworks.
	//   "CLOUD_EXTENSION" - Subnetworks created for Cloud Extension Machines.
	//   "GLOBAL_MANAGED_PROXY" - Subnet reserved for Global Envoy-based Load
	// Balancing.
	//   "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal HTTP(S) Load
	// Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY
	// instead.
	//   "PRIVATE" - Regular user created or automatically created subnet.
	//   "PRIVATE_NAT" - Subnetwork used as source range for Private NAT Gateways.
	//   "PRIVATE_RFC_1918" - Regular user created or automatically created subnet.
	//   "PRIVATE_SERVICE_CONNECT" - Subnetworks created for Private Service
	// Connect in the producer network.
	//   "REGIONAL_MANAGED_PROXY" - Subnetwork used for Regional Envoy-based Load
	// Balancing.
	Purpose string `json:"purpose,omitempty"`
	// Role: The role of subnetwork. Currently, this field is only used when
	// purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value
	// can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is
	// currently being used for Envoy-based load balancers in a region. A BACKUP
	// subnetwork is one that is ready to be promoted to ACTIVE or is currently
	// draining. This field can be updated with a patch request.
	//
	// Possible values:
	//   "ACTIVE" - The ACTIVE subnet that is currently used.
	//   "BACKUP" - The BACKUP subnet that could be promoted to ACTIVE.
	Role string `json:"role,omitempty"`
	// SecondaryIpRanges: Secondary IP ranges.
	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
	// StackType: The stack type for the subnet. If set to IPV4_ONLY, new VMs in
	// the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in
	// the subnet can be assigned both IPv4 and IPv6 addresses. If not specified,
	// IPV4_ONLY is used. This field can be both set at resource creation time and
	// updated using patch.
	//
	// Possible values:
	//   "IPV4_IPV6" - New VMs in this subnet can have both IPv4 and IPv6
	// addresses.
	//   "IPV4_ONLY" - New VMs in this subnet will only be assigned IPv4 addresses.
	//   "IPV6_ONLY" - New VMs in this subnet will only be assigned IPv6 addresses.
	StackType string `json:"stackType,omitempty"`
	// Subnetwork: Subnetwork URL.
	Subnetwork string `json:"subnetwork,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalIpv6Prefix") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIpv6Prefix") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UsableSubnetwork) MarshalJSON() ([]byte, error) {
	type NoMethod UsableSubnetwork
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UsableSubnetworkSecondaryRange: Secondary IP range of a usable subnetwork.
type UsableSubnetworkSecondaryRange struct {
	// IpCidrRange: The range of IP addresses belonging to this subnetwork
	// secondary range.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// RangeName: The name associated with this subnetwork secondary range, used
	// when adding an alias IP range to a VM instance. The name must be 1-63
	// characters long, and comply with RFC1035. The name must be unique within the
	// subnetwork.
	RangeName string `json:"rangeName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
	type NoMethod UsableSubnetworkSecondaryRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UsableSubnetworksAggregatedList struct {
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Items: [Output] A list of usable subnetwork URLs.
	Items []*UsableSubnetwork `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#usableSubnetworksAggregatedList for aggregated lists of usable
	// subnetworks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results. In special cases
	// listUsable may return 0 subnetworks and nextPageToken which still should be
	// used to get the next page of results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ScopedWarnings: [Output Only] Informational warning messages for failures
	// encountered from scopes.
	ScopedWarnings []*SubnetworksScopedWarning `json:"scoped_warnings,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod UsableSubnetworksAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UsableSubnetworksAggregatedListWarning: [Output Only] Informational warning
// message.
type UsableSubnetworksAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod UsableSubnetworksAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type UsableSubnetworksAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod UsableSubnetworksAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// UsageExportLocation: The location in Cloud Storage and naming method of the
// daily usage report. Contains bucket_name and report_name prefix.
type UsageExportLocation struct {
	// BucketName: The name of an existing bucket in Cloud Storage where the usage
	// report object is stored. The Google Service Account is granted write access
	// to this bucket. This can either be the bucket name by itself, such as
	// example-bucket, or the bucket name with gs:// or
	// https://storage.googleapis.com/ in front of it, such as gs://example-bucket.
	BucketName string `json:"bucketName,omitempty"`
	// ReportNamePrefix: An optional prefix for the name of the usage report object
	// stored in bucketName. If not supplied, defaults to usage_gce. The report is
	// stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where
	// YYYYMMDD is the day of the usage according to Pacific Time. If you supply a
	// prefix, it should conform to Cloud Storage object naming conventions.
	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BucketName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BucketName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s UsageExportLocation) MarshalJSON() ([]byte, error) {
	type NoMethod UsageExportLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmEndpointNatMappings: Contain information of Nat mapping for a VM endpoint
// (i.e., NIC).
type VmEndpointNatMappings struct {
	// InstanceName: Name of the VM instance which the endpoint belongs to
	InstanceName         string                                       `json:"instanceName,omitempty"`
	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
	type NoMethod VmEndpointNatMappings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
// mapping for an interface of this endpoint.
type VmEndpointNatMappingsInterfaceNatMappings struct {
	// DrainNatIpPortRanges: List of all drain IP:port-range mappings assigned to
	// this interface. These ranges are inclusive, that is, both the first and the
	// last ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
	// "1.1.1.1:2234-2234"].
	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
	// NatIpPortRanges: A list of all IP:port-range mappings assigned to this
	// interface. These ranges are inclusive, that is, both the first and the last
	// ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
	// "1.1.1.1:2234-2234"].
	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
	// allocated to this interface. It equals to the aggregated port number in the
	// field drain_nat_ip_port_ranges.
	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated to this
	// interface. It equals to the aggregated port number in the field
	// nat_ip_port_ranges.
	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
	// RuleMappings: Information about mappings provided by rules in this NAT.
	RuleMappings []*VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings `json:"ruleMappings,omitempty"`
	// SourceAliasIpRange: Alias IP range for this interface endpoint. It will be a
	// private (RFC 1918) IP range. Examples: "10.33.4.55/32", or "192.168.5.0/24".
	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
	// SourceVirtualIp: Primary IP of the VM for this NIC.
	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DrainNatIpPortRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings: Contains
// information of NAT Mappings provided by a NAT Rule.
type VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings struct {
	// DrainNatIpPortRanges: List of all drain IP:port-range mappings assigned to
	// this interface by this rule. These ranges are inclusive, that is, both the
	// first and the last ports can be used for NAT. Example:
	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
	// NatIpPortRanges: A list of all IP:port-range mappings assigned to this
	// interface by this rule. These ranges are inclusive, that is, both the first
	// and the last ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
	// "1.1.1.1:2234-2234"].
	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
	// allocated to this interface by this rule. It equals the aggregated port
	// number in the field drain_nat_ip_port_ranges.
	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated to this
	// interface by this rule. It equals the aggregated port number in the field
	// nat_ip_port_ranges.
	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
	// RuleNumber: Rule number of the NAT Rule.
	RuleNumber int64 `json:"ruleNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DrainNatIpPortRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings) MarshalJSON() ([]byte, error) {
	type NoMethod VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
type VmEndpointNatMappingsList struct {
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id string `json:"id,omitempty"`
	// Kind: [Output Only] Type of resource. Always
	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM endpoints.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Result: [Output Only] A list of Nat mapping information of VM endpoints.
	Result []*VmEndpointNatMappings `json:"result,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
	type NoMethod VmEndpointNatMappingsList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
// message.
type VmEndpointNatMappingsListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VmEndpointNatMappingsListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VmEndpointNatMappingsListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VmEndpointNatMappingsListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGateway: Represents a HA VPN gateway. HA VPN is a high-availability (HA)
// Cloud VPN solution that lets you securely connect your on-premises network
// to your Google Cloud Virtual Private Cloud network through an IPsec VPN
// connection in a single region. For more information about Cloud HA VPN
// solutions, see Cloud VPN topologies .
type VpnGateway struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// GatewayIpVersion: The IP family of the gateway IPs for the HA-VPN gateway
	// interfaces. If not specified, IPV4 will be used.
	//
	// Possible values:
	//   "IPV4" - Every HA-VPN gateway interface is configured with an IPv4
	// address.
	//   "IPV6" - Every HA-VPN gateway interface is configured with an IPv6
	// address.
	GatewayIpVersion string `json:"gatewayIpVersion,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for VPN
	// gateways.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// VpnGateway, which is essentially a hash of the labels set used for
	// optimistic locking. The fingerprint is initially generated by Compute Engine
	// and changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a VpnGateway.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// Network: URL of the network to which this VPN gateway is attached. Provided
	// by the client when the VPN gateway is created.
	Network string `json:"network,omitempty"`
	// Region: [Output Only] URL of the region where the VPN gateway resides.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// StackType: The stack type for this VPN gateway to identify the IP protocols
	// that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6, IPV6_ONLY. If
	// not specified, IPV4_ONLY is used if the gateway IP version is IPV4, or
	// IPV4_IPV6 if the gateway IP version is IPV6.
	//
	// Possible values:
	//   "IPV4_IPV6" - Enable VPN gateway with both IPv4 and IPv6 protocols.
	//   "IPV4_ONLY" - Enable VPN gateway with only IPv4 protocol.
	//   "IPV6_ONLY" - Enable VPN gateway with only IPv6 protocol.
	StackType string `json:"stackType,omitempty"`
	// VpnInterfaces: The list of VPN interfaces associated with this VPN gateway.
	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGateway) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGateway
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewayAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of VpnGateway resources.
	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for VPN
	// gateways.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
// message.
type VpnGatewayAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewayAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewayList: Contains a list of VpnGateway resources.
type VpnGatewayList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of VpnGateway resources.
	Items []*VpnGateway `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for VPN
	// gateways.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *VpnGatewayListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayList) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewayListWarning: [Output Only] Informational warning message.
type VpnGatewayListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewayListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewayStatus struct {
	// VpnConnections: List of VPN connection for this VpnGateway.
	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VpnConnections") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayStatus) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
// availability requirement state for the VPN connection between this Cloud VPN
// gateway and a peer gateway.
type VpnGatewayStatusHighAvailabilityRequirementState struct {
	// State: Indicates the high availability requirement state for the VPN
	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
	// CONNECTION_REDUNDANCY_NOT_MET.
	//
	// Possible values:
	//   "CONNECTION_REDUNDANCY_MET" - VPN tunnels are configured with adequate
	// redundancy from Cloud VPN gateway to the peer VPN gateway. For both
	// GCP-to-non-GCP and GCP-to-GCP connections, the adequate redundancy is a
	// pre-requirement for users to get 99.99% availability on GCP side; please
	// note that for any connection, end-to-end 99.99% availability is subject to
	// proper configuration on the peer VPN gateway.
	//   "CONNECTION_REDUNDANCY_NOT_MET" - VPN tunnels are not configured with
	// adequate redundancy from the Cloud VPN gateway to the peer gateway
	State string `json:"state,omitempty"`
	// UnsatisfiedReason: Indicates the reason why the VPN connection does not meet
	// the high availability redundancy criteria/requirement. Valid values is
	// INCOMPLETE_TUNNELS_COVERAGE.
	//
	// Possible values:
	//   "INCOMPLETE_TUNNELS_COVERAGE"
	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "State") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "State") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
type VpnGatewayStatusTunnel struct {
	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
	// associated with.
	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
	// connected to, the peer gateway could either be an external VPN gateway or a
	// Google Cloud VPN gateway.
	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
	// TunnelUrl: URL reference to the VPN tunnel.
	TunnelUrl string `json:"tunnelUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LocalGatewayInterface") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayStatusTunnel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN tunnels
// connected from this VpnGateway to the same peer gateway. The peer gateway
// could either be an external VPN gateway or a Google Cloud VPN gateway.
type VpnGatewayStatusVpnConnection struct {
	// PeerExternalGateway: URL reference to the peer external VPN gateways to
	// which the VPN tunnels in this VPN connection are connected. This field is
	// mutually exclusive with peer_gcp_gateway.
	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
	// PeerGcpGateway: URL reference to the peer side VPN gateways to which the VPN
	// tunnels in this VPN connection are connected. This field is mutually
	// exclusive with peer_gcp_gateway.
	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
	// State: HighAvailabilityRequirementState for the VPN connection.
	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
	// Tunnels: List of VPN tunnels that are in this VPN connection.
	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PeerExternalGateway") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayStatusVpnConnection
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
type VpnGatewayVpnGatewayInterface struct {
	// Id: [Output Only] Numeric identifier for this VPN interface associated with
	// the VPN gateway.
	Id int64 `json:"id,omitempty"`
	// InterconnectAttachment: URL of the VLAN attachment (interconnectAttachment)
	// resource for this VPN gateway interface. When the value of this field is
	// present, the VPN gateway is used for HA VPN over Cloud Interconnect; all
	// egress or ingress traffic for this VPN gateway interface goes through the
	// specified VLAN attachment resource.
	InterconnectAttachment string `json:"interconnectAttachment,omitempty"`
	// IpAddress: [Output Only] IP address for this VPN interface associated with
	// the VPN gateway. The IP address could be either a regional external IP
	// address or a regional internal IP address. The two IP addresses for a VPN
	// gateway must be all regional external or regional internal IP addresses.
	// There cannot be a mix of regional external IP addresses and regional
	// internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses
	// for both interfaces could either be regional internal IP addresses or
	// regional external IP addresses. For regular (non HA VPN over Cloud
	// Interconnect) HA VPN tunnels, the IP address must be a regional external IP
	// address.
	IpAddress string `json:"ipAddress,omitempty"`
	// Ipv6Address: [Output Only] IPv6 address for this VPN interface associated
	// with the VPN gateway. The IPv6 address must be a regional external IPv6
	// address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).
	Ipv6Address string `json:"ipv6Address,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayVpnGatewayInterface
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewaysGetStatusResponse struct {
	Result *VpnGatewayStatus `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewaysGetStatusResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewaysScopedList struct {
	// VpnGateways: [Output Only] A list of VPN gateways contained in this scope.
	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
	// Warning: [Output Only] Informational warning which replaces the list of
	// addresses when the list is empty.
	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VpnGateways") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewaysScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnGatewaysScopedListWarning: [Output Only] Informational warning which
// replaces the list of addresses when the list is empty.
type VpnGatewaysScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewaysScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewaysScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewaysScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnTunnel: Represents a Cloud VPN Tunnel resource. For more information
// about VPN, read the the Cloud VPN Overview.
type VpnTunnel struct {
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// DetailedStatus: [Output Only] Detailed status message for the VPN tunnel.
	DetailedStatus string `json:"detailedStatus,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IkeVersion: IKE protocol version to use when establishing the VPN tunnel
	// with the peer VPN gateway. Acceptable IKE versions are 1 or 2. The default
	// version is 2.
	IkeVersion int64 `json:"ikeVersion,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN
	// tunnels.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this
	// VpnTunnel, which is essentially a hash of the labels set used for optimistic
	// locking. The fingerprint is initially generated by Compute Engine and
	// changes after every request to modify or update labels. You must always
	// provide an up-to-date fingerprint hash in order to update or change labels,
	// otherwise the request will fail with error 412 conditionNotMet. To see the
	// latest fingerprint, make a get() request to retrieve a VpnTunnel.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels for this resource. These can only be added or modified by the
	// setLabels method. Each label key/value pair must comply with RFC1035. Label
	// values may be empty.
	Labels map[string]string `json:"labels,omitempty"`
	// LocalTrafficSelector: Local traffic selector to use when establishing the
	// VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted
	// string, for example: 192.168.0.0/16. The ranges must be disjoint. Only IPv4
	// is supported.
	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created. The name must be 1-63 characters long, and comply with RFC1035.
	// Specifically, the name must be 1-63 characters long and match the regular
	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
	// be a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot be a
	// dash.
	Name string `json:"name,omitempty"`
	// PeerExternalGateway: URL of the peer side external VPN gateway to which this
	// VPN tunnel is connected. Provided by the client when the VPN tunnel is
	// created. This field is exclusive with the field peerGcpGateway.
	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
	// PeerExternalGatewayInterface: The interface ID of the external VPN gateway
	// to which this VPN tunnel is connected. Provided by the client when the VPN
	// tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of
	// IDs in use depends on the external VPN gateway redundancy type.
	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
	// PeerGcpGateway: URL of the peer side HA VPN gateway to which this VPN tunnel
	// is connected. Provided by the client when the VPN tunnel is created. This
	// field can be used when creating highly available VPN from VPC network to VPC
	// network, the field is exclusive with the field peerExternalGateway. If
	// provided, the VPN tunnel will automatically use the same vpnGatewayInterface
	// ID in the peer Google Cloud VPN gateway.
	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
	PeerIp string `json:"peerIp,omitempty"`
	// Region: [Output Only] URL of the region where the VPN tunnel resides. You
	// must specify this field as part of the HTTP request URL. It is not settable
	// as a field in the request body.
	Region string `json:"region,omitempty"`
	// RemoteTrafficSelector: Remote traffic selectors to use when establishing the
	// VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted
	// string, for example: 192.168.0.0/16. The ranges should be disjoint. Only
	// IPv4 is supported.
	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
	// Router: URL of the router resource to be used for dynamic routing.
	Router string `json:"router,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SharedSecret: Shared secret used to set the secure session between the Cloud
	// VPN gateway and the peer VPN gateway.
	SharedSecret string `json:"sharedSecret,omitempty"`
	// SharedSecretHash: Hash of the shared secret.
	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
	// Status: [Output Only] The status of the VPN tunnel, which can be one of the
	// following: - PROVISIONING: Resource is being allocated for the VPN tunnel. -
	// WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from the
	// user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route
	// resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful
	// first handshake with the peer VPN. - ESTABLISHED: Secure session is
	// successfully established with the peer VPN. - NETWORK_ERROR: Deprecated,
	// replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for
	// example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. -
	// DEPROVISIONING: Resources are being deallocated for the VPN tunnel. -
	// FAILED: Tunnel creation has failed and the tunnel is not ready to be used. -
	// NO_INCOMING_PACKETS: No incoming packets from peer. - REJECTED: Tunnel
	// configuration was rejected, can be result of being denied access. -
	// ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required
	// resources. - STOPPED: Tunnel is stopped due to its Forwarding Rules being
	// deleted for Classic VPN tunnels or the project is in frozen state. -
	// PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably
	// behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not
	// allowed for an HA-VPN tunnel.
	//
	// Possible values:
	//   "ALLOCATING_RESOURCES" - Cloud VPN is in the process of allocating all
	// required resources (specifically, a borg task).
	//   "AUTHORIZATION_ERROR" - Auth error (e.g. bad shared secret).
	//   "DEPROVISIONING" - Resources is being deallocated for the VPN tunnel.
	//   "ESTABLISHED" - Secure session is successfully established with peer VPN.
	//   "FAILED" - Tunnel creation has failed and the tunnel is not ready to be
	// used.
	//   "FIRST_HANDSHAKE" - Successful first handshake with peer VPN.
	//   "NEGOTIATION_FAILURE" - Handshake failed.
	//   "NETWORK_ERROR" - Deprecated, replaced by NO_INCOMING_PACKETS
	//   "NO_INCOMING_PACKETS" - No incoming packets from peer
	//   "PROVISIONING" - Resource is being allocated for the VPN tunnel.
	//   "REJECTED" - Tunnel configuration was rejected, can be result of being
	// denylisted.
	//   "STOPPED" - Tunnel is stopped due to its Forwarding Rules being deleted.
	//   "WAITING_FOR_FULL_CONFIG" - Waiting to receive all VPN-related configs
	// from user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule and Route
	// resources are needed to setup VPN tunnel.
	Status string `json:"status,omitempty"`
	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN tunnel
	// is associated. Provided by the client when the VPN tunnel is created.
	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is associated.
	// Provided by the client when the VPN tunnel is created. This must be used
	// (instead of target_vpn_gateway) if a High Availability VPN gateway resource
	// is created.
	VpnGateway string `json:"vpnGateway,omitempty"`
	// VpnGatewayInterface: The interface ID of the VPN gateway with which this VPN
	// tunnel is associated. Possible values are: `0`, `1`.
	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreationTimestamp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreationTimestamp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnel) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnTunnelAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of VpnTunnelsScopedList resources.
	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN
	// tunnels.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnTunnelAggregatedListWarning: [Output Only] Informational warning message.
type VpnTunnelAggregatedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnTunnelAggregatedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnTunnelList: Contains a list of VpnTunnel resources.
type VpnTunnelList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of VpnTunnel resources.
	Items []*VpnTunnel `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN
	// tunnels.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *VpnTunnelListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelList) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnTunnelListWarning: [Output Only] Informational warning message.
type VpnTunnelListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnTunnelListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnTunnelsScopedList struct {
	// VpnTunnels: A list of VPN tunnels contained in this scope.
	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
	// Warning: Informational warning which replaces the list of addresses when the
	// list is empty.
	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VpnTunnels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelsScopedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VpnTunnelsScopedListWarning: Informational warning which replaces the list
// of addresses when the list is empty.
type VpnTunnelsScopedListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnTunnelsScopedListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type WafExpressionSet struct {
	// Aliases: A list of alternate IDs. The format should be: - E.g. XSS-stable
	// Generic suffix like "stable" is particularly useful if a policy likes to
	// avail newer set of expressions without having to change the policy. A given
	// alias name can't be used for more than one entity set.
	Aliases []string `json:"aliases,omitempty"`
	// Expressions: List of available expressions.
	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
	// Id: Google specified expression set ID. The format should be: - E.g.
	// XSS-20170329 required
	Id string `json:"id,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Aliases") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Aliases") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s WafExpressionSet) MarshalJSON() ([]byte, error) {
	type NoMethod WafExpressionSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type WafExpressionSetExpression struct {
	// Id: Expression ID should uniquely identify the origin of the expression.
	// E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1
	// rule id 973337. The ID could be used to determine the individual attack
	// definition that has been detected. It could also be used to exclude it from
	// the policy in case of false positive. required
	Id string `json:"id,omitempty"`
	// Sensitivity: The sensitivity value associated with the WAF rule ID. This
	// corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is
	// reserved for opt-in only rules.
	Sensitivity int64 `json:"sensitivity,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
	type NoMethod WafExpressionSetExpression
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// WeightedBackendService: In contrast to a single BackendService in
// HttpRouteAction to which all matching traffic is directed to,
// WeightedBackendService allows traffic to be split across multiple backend
// services. The volume of traffic for each backend service is proportional to
// the weight specified in each WeightedBackendService
type WeightedBackendService struct {
	// BackendService: The full or partial URL to the default BackendService
	// resource. Before forwarding the request to backendService, the load balancer
	// applies any relevant headerActions specified as part of this
	// backendServiceWeight.
	BackendService string `json:"backendService,omitempty"`
	// HeaderAction: Specifies changes to request and response headers that need to
	// take effect for the selected backendService. headerAction specified here
	// take effect before headerAction in the enclosing HttpRouteRule, PathMatcher
	// and UrlMap. headerAction is not supported for load balancers that have their
	// loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound
	// to a target gRPC proxy that has validateForProxyless field set to true.
	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
	// Weight: Specifies the fraction of traffic sent to a backend service,
	// computed as weight / (sum of all weightedBackendService weights in
	// routeAction) . The selection of a backend service is determined only for new
	// traffic. Once a user's request has been directed to a backend service,
	// subsequent requests are sent to the same backend service as determined by
	// the backend service's session affinity policy. Don't configure session
	// affinity if you're using weighted traffic splitting. If you do, the weighted
	// traffic splitting configuration takes precedence. The value must be from 0
	// to 1000.
	Weight int64 `json:"weight,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackendService") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackendService") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s WeightedBackendService) MarshalJSON() ([]byte, error) {
	type NoMethod WeightedBackendService
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type XpnHostList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: [Output Only] A list of shared VPC host project URLs.
	Items []*Project `json:"items,omitempty"`
	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for lists
	// of shared VPC hosts.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *XpnHostListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s XpnHostList) MarshalJSON() ([]byte, error) {
	type NoMethod XpnHostList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// XpnHostListWarning: [Output Only] Informational warning message.
type XpnHostListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*XpnHostListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s XpnHostListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod XpnHostListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type XpnHostListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s XpnHostListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod XpnHostListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// XpnResourceId: Service resource (a.k.a service project) ID.
type XpnResourceId struct {
	// Id: The ID of the service resource. In the case of projects, this field
	// supports project id (e.g., my-project-123) and project number (e.g.
	// 12345678).
	Id string `json:"id,omitempty"`
	// Type: The type of the service resource.
	//
	// Possible values:
	//   "PROJECT"
	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s XpnResourceId) MarshalJSON() ([]byte, error) {
	type NoMethod XpnResourceId
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Zone: Represents a Zone resource. A zone is a deployment area. These
// deployment areas are subsets of a region. For example the zone us-east1-b is
// located in the us-east1 region. For more information, read Regions and
// Zones.
type Zone struct {
	// AvailableCpuPlatforms: [Output Only] Available cpu/platform selections for
	// the zone.
	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- [Output Only] The deprecation status associated with this
	// zone.
	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
	// Description: [Output Only] Textual description of the resource.
	Description string `json:"description,omitempty"`
	// Id: [Output Only] The unique identifier for the resource. This identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: [Output Only] Type of the resource. Always compute#zone for zones.
	Kind string `json:"kind,omitempty"`
	// Name: [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// Region: [Output Only] Full URL reference to the region which hosts the zone.
	Region string `json:"region,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Status: [Output Only] Status of the zone, either UP or DOWN.
	//
	// Possible values:
	//   "DOWN"
	//   "UP"
	Status string `json:"status,omitempty"`
	// SupportsPzs: [Output Only] Reserved for future use.
	SupportsPzs bool `json:"supportsPzs,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AvailableCpuPlatforms") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s Zone) MarshalJSON() ([]byte, error) {
	type NoMethod Zone
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ZoneList: Contains a list of zone resources.
type ZoneList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of Zone resources.
	Items []*Zone `json:"items,omitempty"`
	// Kind: Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: [Output Only] This token allows you to get the next page of
	// results for list requests. If the number of results is larger than
	// maxResults, use the nextPageToken as a value for the query parameter
	// pageToken in the next list request. Subsequent list requests will have their
	// own nextPageToken to continue paging through the results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *ZoneListWarning `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ZoneList) MarshalJSON() ([]byte, error) {
	type NoMethod ZoneList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ZoneListWarning: [Output Only] Informational warning message.
type ZoneListWarning struct {
	// Code: [Output Only] A warning code, if applicable. For example, Compute
	// Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
	//
	// Possible values:
	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made
	// by a failed operation.
	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created.
	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources
	// has a type marked as deprecated
	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is
	// larger than image size.
	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
	// resources has a type marked as experimental
	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api call
	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
	// overridden. Deprecated unused field.
	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected
	// kernel, which is deprecated.
	//   "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend
	// service is associated with a health check that is not of type
	// HTTP/HTTPS/HTTP2.
	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
	// exceedingly large number of resources
	//   "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list
	// overhead quota exceed which captures the amount of resources filtered out by
	// user-defined list filter.
	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not
	// assigned to an instance on the network.
	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip
	// forward.
	//   "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance
	// URL refers to an instance that does not have an ipv6 interface on the same
	// network as the route.
	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to
	// an instance that does not exist.
	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL
	// refers to an instance that is not on the same network as the route.
	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a
	// status of RUNNING.
	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue
	// the process despite the mentioned error.
	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list page.
	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be missing
	// due to errors
	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that
	// requires a TOS they have not accepted.
	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is
	// in use.
	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete
	// could not be deleted because they were in use.
	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
	// ignored.
	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance
	// group manager is valid as such, but its application does not make a lot of
	// sense, because it allows only single instance in instance group.
	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are
	// present
	//   "UNREACHABLE" - A given scope cannot be reached.
	Code string `json:"code,omitempty"`
	// Data: [Output Only] Metadata about this warning in key: value format. For
	// example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
	Data []*ZoneListWarningData `json:"data,omitempty"`
	// Message: [Output Only] A human-readable description of the warning code.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ZoneListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ZoneListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ZoneListWarningData struct {
	// Key: [Output Only] A key that provides more detail on the warning being
	// returned. For example, for warnings where there are no results in a list
	// request for a particular zone, this key might be scope and the key value
	// might be the zone name. Other examples might be a key indicating a
	// deprecated resource and a suggested replacement, or a warning about invalid
	// network settings (for example, if an instance attempts to perform IP
	// forwarding but is not enabled for IP forwarding).
	Key string `json:"key,omitempty"`
	// Value: [Output Only] A warning data value corresponding to the key.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ZoneListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ZoneListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ZoneSetLabelsRequest struct {
	// LabelFingerprint: The fingerprint of the previous set of labels for this
	// resource, used to detect conflicts. The fingerprint is initially generated
	// by Compute Engine and changes after every request to modify or update
	// labels. You must always provide an up-to-date fingerprint hash in order to
	// update or change labels. Make a get() request to the resource to get the
	// latest fingerprint.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: The labels to set for this resource.
	Labels map[string]string `json:"labels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LabelFingerprint") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ZoneSetLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ZoneSetPolicyRequest struct {
	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
	// Deprecated. Use 'policy' to specify bindings.
	Bindings []*Binding `json:"bindings,omitempty"`
	// Etag: Flatten Policy to create a backward compatible wire-format.
	// Deprecated. Use 'policy' to specify the etag.
	Etag string `json:"etag,omitempty"`
	// Policy: REQUIRED: The complete policy to be applied to the 'resource'. The
	// size of the policy is limited to a few 10s of KB. An empty policy is in
	// general a valid policy but certain services (like Projects) might reject
	// them.
	Policy *Policy `json:"policy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Bindings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Bindings") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ZoneSetPolicyRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
