// Copyright 2026 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/v1"
//	...
//	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/v1"

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

	"github.com/googleapis/gax-go/v2/internallog"
	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
var _ = internallog.New

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

// 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))
	opts = append(opts, internaloption.EnableNewAuthLibrary())
	client, endpoint, err := htransport.NewClient(ctx, opts...)
	if err != nil {
		return nil, err
	}
	s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)}
	s.AcceleratorTypes = NewAcceleratorTypesService(s)
	s.Addresses = NewAddressesService(s)
	s.Advice = NewAdviceService(s)
	s.Autoscalers = NewAutoscalersService(s)
	s.BackendBuckets = NewBackendBucketsService(s)
	s.BackendServices = NewBackendServicesService(s)
	s.CrossSiteNetworks = NewCrossSiteNetworksService(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.GlobalVmExtensionPolicies = NewGlobalVmExtensionPoliciesService(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.InterconnectAttachmentGroups = NewInterconnectAttachmentGroupsService(s)
	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
	s.InterconnectGroups = NewInterconnectGroupsService(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.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.PreviewFeatures = NewPreviewFeaturesService(s)
	s.Projects = NewProjectsService(s)
	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
	s.RegionAutoscalers = NewRegionAutoscalersService(s)
	s.RegionBackendBuckets = NewRegionBackendBucketsService(s)
	s.RegionBackendServices = NewRegionBackendServicesService(s)
	s.RegionCommitments = NewRegionCommitmentsService(s)
	s.RegionCompositeHealthChecks = NewRegionCompositeHealthChecksService(s)
	s.RegionDiskTypes = NewRegionDiskTypesService(s)
	s.RegionDisks = NewRegionDisksService(s)
	s.RegionHealthAggregationPolicies = NewRegionHealthAggregationPoliciesService(s)
	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
	s.RegionHealthChecks = NewRegionHealthChecksService(s)
	s.RegionHealthSources = NewRegionHealthSourcesService(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.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.ReservationBlocks = NewReservationBlocksService(s)
	s.ReservationSlots = NewReservationSlotsService(s)
	s.ReservationSubBlocks = NewReservationSubBlocksService(s)
	s.Reservations = NewReservationsService(s)
	s.ResourcePolicies = NewResourcePoliciesService(s)
	s.RolloutPlans = NewRolloutPlansService(s)
	s.Rollouts = NewRolloutsService(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.WireGroups = NewWireGroupsService(s)
	s.ZoneOperations = NewZoneOperationsService(s)
	s.ZoneVmExtensionPolicies = NewZoneVmExtensionPoliciesService(s)
	s.Zones = NewZonesService(s)
	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")
	}
	return NewService(context.TODO(), option.WithHTTPClient(client))
}

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

	AcceleratorTypes *AcceleratorTypesService

	Addresses *AddressesService

	Advice *AdviceService

	Autoscalers *AutoscalersService

	BackendBuckets *BackendBucketsService

	BackendServices *BackendServicesService

	CrossSiteNetworks *CrossSiteNetworksService

	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

	GlobalVmExtensionPolicies *GlobalVmExtensionPoliciesService

	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

	InterconnectAttachmentGroups *InterconnectAttachmentGroupsService

	InterconnectAttachments *InterconnectAttachmentsService

	InterconnectGroups *InterconnectGroupsService

	InterconnectLocations *InterconnectLocationsService

	InterconnectRemoteLocations *InterconnectRemoteLocationsService

	Interconnects *InterconnectsService

	LicenseCodes *LicenseCodesService

	Licenses *LicensesService

	MachineImages *MachineImagesService

	MachineTypes *MachineTypesService

	NetworkAttachments *NetworkAttachmentsService

	NetworkEdgeSecurityServices *NetworkEdgeSecurityServicesService

	NetworkEndpointGroups *NetworkEndpointGroupsService

	NetworkFirewallPolicies *NetworkFirewallPoliciesService

	NetworkProfiles *NetworkProfilesService

	Networks *NetworksService

	NodeGroups *NodeGroupsService

	NodeTemplates *NodeTemplatesService

	NodeTypes *NodeTypesService

	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService

	PacketMirrorings *PacketMirroringsService

	PreviewFeatures *PreviewFeaturesService

	Projects *ProjectsService

	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService

	PublicDelegatedPrefixes *PublicDelegatedPrefixesService

	RegionAutoscalers *RegionAutoscalersService

	RegionBackendBuckets *RegionBackendBucketsService

	RegionBackendServices *RegionBackendServicesService

	RegionCommitments *RegionCommitmentsService

	RegionCompositeHealthChecks *RegionCompositeHealthChecksService

	RegionDiskTypes *RegionDiskTypesService

	RegionDisks *RegionDisksService

	RegionHealthAggregationPolicies *RegionHealthAggregationPoliciesService

	RegionHealthCheckServices *RegionHealthCheckServicesService

	RegionHealthChecks *RegionHealthChecksService

	RegionHealthSources *RegionHealthSourcesService

	RegionInstanceGroupManagerResizeRequests *RegionInstanceGroupManagerResizeRequestsService

	RegionInstanceGroupManagers *RegionInstanceGroupManagersService

	RegionInstanceGroups *RegionInstanceGroupsService

	RegionInstanceTemplates *RegionInstanceTemplatesService

	RegionInstances *RegionInstancesService

	RegionInstantSnapshotGroups *RegionInstantSnapshotGroupsService

	RegionInstantSnapshots *RegionInstantSnapshotsService

	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

	ReservationBlocks *ReservationBlocksService

	ReservationSlots *ReservationSlotsService

	ReservationSubBlocks *ReservationSubBlocksService

	Reservations *ReservationsService

	ResourcePolicies *ResourcePoliciesService

	RolloutPlans *RolloutPlansService

	Rollouts *RolloutsService

	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

	WireGroups *WireGroupsService

	ZoneOperations *ZoneOperationsService

	ZoneVmExtensionPolicies *ZoneVmExtensionPoliciesService

	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 NewAdviceService(s *Service) *AdviceService {
	rs := &AdviceService{s: s}
	return rs
}

type AdviceService 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 NewCrossSiteNetworksService(s *Service) *CrossSiteNetworksService {
	rs := &CrossSiteNetworksService{s: s}
	return rs
}

type CrossSiteNetworksService 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 NewGlobalVmExtensionPoliciesService(s *Service) *GlobalVmExtensionPoliciesService {
	rs := &GlobalVmExtensionPoliciesService{s: s}
	return rs
}

type GlobalVmExtensionPoliciesService 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 NewInterconnectAttachmentGroupsService(s *Service) *InterconnectAttachmentGroupsService {
	rs := &InterconnectAttachmentGroupsService{s: s}
	return rs
}

type InterconnectAttachmentGroupsService struct {
	s *Service
}

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

type InterconnectAttachmentsService struct {
	s *Service
}

func NewInterconnectGroupsService(s *Service) *InterconnectGroupsService {
	rs := &InterconnectGroupsService{s: s}
	return rs
}

type InterconnectGroupsService 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 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 NewPreviewFeaturesService(s *Service) *PreviewFeaturesService {
	rs := &PreviewFeaturesService{s: s}
	return rs
}

type PreviewFeaturesService 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 NewRegionBackendBucketsService(s *Service) *RegionBackendBucketsService {
	rs := &RegionBackendBucketsService{s: s}
	return rs
}

type RegionBackendBucketsService 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 NewRegionCompositeHealthChecksService(s *Service) *RegionCompositeHealthChecksService {
	rs := &RegionCompositeHealthChecksService{s: s}
	return rs
}

type RegionCompositeHealthChecksService 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 NewRegionHealthAggregationPoliciesService(s *Service) *RegionHealthAggregationPoliciesService {
	rs := &RegionHealthAggregationPoliciesService{s: s}
	return rs
}

type RegionHealthAggregationPoliciesService 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 NewRegionHealthSourcesService(s *Service) *RegionHealthSourcesService {
	rs := &RegionHealthSourcesService{s: s}
	return rs
}

type RegionHealthSourcesService 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 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 NewReservationBlocksService(s *Service) *ReservationBlocksService {
	rs := &ReservationBlocksService{s: s}
	return rs
}

type ReservationBlocksService struct {
	s *Service
}

func NewReservationSlotsService(s *Service) *ReservationSlotsService {
	rs := &ReservationSlotsService{s: s}
	return rs
}

type ReservationSlotsService struct {
	s *Service
}

func NewReservationSubBlocksService(s *Service) *ReservationSubBlocksService {
	rs := &ReservationSubBlocksService{s: s}
	return rs
}

type ReservationSubBlocksService 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 NewRolloutPlansService(s *Service) *RolloutPlansService {
	rs := &RolloutPlansService{s: s}
	return rs
}

type RolloutPlansService struct {
	s *Service
}

func NewRolloutsService(s *Service) *RolloutsService {
	rs := &RolloutsService{s: s}
	return rs
}

type RolloutsService 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 NewWireGroupsService(s *Service) *WireGroupsService {
	rs := &WireGroupsService{s: s}
	return rs
}

type WireGroupsService struct {
	s *Service
}

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

type ZoneOperationsService struct {
	s *Service
}

func NewZoneVmExtensionPoliciesService(s *Service) *ZoneVmExtensionPoliciesService {
	rs := &ZoneVmExtensionPoliciesService{s: s}
	return rs
}

type ZoneVmExtensionPoliciesService 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)
}

// AcceleratorTopologiesInfo: Info for accelerator topologies within a densely
// packed reservation.
type AcceleratorTopologiesInfo struct {
	// AcceleratorTopologyInfos: Info for each accelerator topology.
	AcceleratorTopologyInfos []*AcceleratorTopologiesInfoAcceleratorTopologyInfo `json:"acceleratorTopologyInfos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorTopologyInfos")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorTopologyInfos") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AcceleratorTopologiesInfoAcceleratorTopologyInfo: Info for a slice of a
// given topology.
type AcceleratorTopologiesInfoAcceleratorTopologyInfo struct {
	// AcceleratorTopology: The accelerator topology.
	AcceleratorTopology string `json:"acceleratorTopology,omitempty"`
	// InfoPerTopologyStates: Info for each topology state.
	InfoPerTopologyStates []*AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState `json:"infoPerTopologyStates,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorTopology") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorTopology") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState: Info
// for each topology state.
type AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState struct {
	// Count: The number of accelerator topologies in this state.
	Count int64 `json:"count,omitempty"`
	// State: The state of the accelerator topology.
	//
	// Possible values:
	//   "AVAILABLE" - The accelerator topology is available.
	//   "DEGRADED" - The accelerator topology is degraded. The underlying capacity
	// is not in a
	// healthy state and is not available.
	//   "RUNNING" - The accelerator topology is running. If there are both running
	// and
	// degraded hosts within a topology, DEGRADED state will be returned.
	//   "TOPOLOGY_STATE_UNSPECIFIED" - The state of the topology is unspecified.
	//   "UNHEALTHY" - This value has been deprecated and is no longer used.
	State string `json:"state,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 AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState) MarshalJSON() ([]byte, error) {
	type NoMethod AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
	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, readGPUs on Compute Engine.
type AcceleratorType struct {
	// CreationTimestamp: [Output Only] Creation timestamp inRFC3339 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. [Output Only] The type of the resource.
	// Alwayscompute#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. [Output Only] Server-defined, fully qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 inexternalIpv6PrefixLength 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. [Output Only] Type of the resource.
	// Alwayscompute#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 orNetwork Access.
	// In ipv6AccessConfigs, the
	// recommend name is External IPv6.
	Name string `json:"name,omitempty"`
	// NatIP: Applies to accessConfigs (IPv4) only. Anexternal 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.
	//   "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"`
	// PublicPtrDomainName: The DNS domain name for the public PTR record.
	//
	// You can set this field only if the `setPublicPtr` field is enabled
	// inaccessConfig. If this field is unspecified inipv6AccessConfig, a default
	// PTR record will be created for
	// first IP in associated external IPv6 range.
	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
	// SecurityPolicy: The resource URL for the security policy associated with
	// this access
	// config.
	SecurityPolicy string `json:"securityPolicy,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. Inipv6AccessConfigs, the default
	// and only option isDIRECT_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/v1/globalAddresses)
// * Regional (external and
// internal)
// (https://cloud.google.com/compute/docs/reference/rest/v1/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 orEXTERNAL. If
	// unspecified, defaults to EXTERNAL.
	//
	// Possible values:
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IpCollection: Reference to the source of external IPv4 addresses,
	// like a PublicDelegatedPrefix (PDP) for BYOIP.
	// The PDP must support enhanced IPv4 allocations.
	//
	// Use one of the following formats to specify a PDP when reserving an
	// external IPv4 address using BYOIP.
	//
	//    -
	//    Full resource URL, as
	// inhttps://www.googleapis.com/compute/v1/projects/projectId/regions/region/pub
	// licDelegatedPrefixes/pdp-name
	//    -
	//    Partial URL, as in
	//
	//
	//           -
	// projects/projectId/regions/region/publicDelegatedPrefixes/pdp-name
	//           - regions/region/publicDelegatedPrefixes/pdp-name
	IpCollection string `json:"ipCollection,omitempty"`
	// IpVersion: The IP version that will be used by this address. Valid options
	// areIPV4 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. [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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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 withRFC1035.
	// 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 theVPC_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 orSTANDARD. 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.
	//   "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 forGLOBAL 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. [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"`
	// Status: Output only. [Output Only] The status of the address, which can be
	// one ofRESERVING, 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 aGCE_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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 anImage (e.g., whether or
// not the OS in theImage 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"`
	// 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 as10.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. [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_DEVICE_CT3"
	//   "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L"
	//   "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP"
	//   "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X"
	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 {
	// HealthInfo: [Output only] Health information for the reservation.
	HealthInfo *AllocationResourceStatusHealthInfo `json:"healthInfo,omitempty"`
	// ReservationBlockCount: The number of reservation blocks associated with this
	// reservation.
	ReservationBlockCount int64 `json:"reservationBlockCount,omitempty"`
	// ReservationMaintenance: Maintenance information for this reservation
	ReservationMaintenance *GroupMaintenanceInfo `json:"reservationMaintenance,omitempty"`
	// SpecificSkuAllocation: Allocation Properties of this reservation.
	SpecificSkuAllocation *AllocationResourceStatusSpecificSKUAllocation `json:"specificSkuAllocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HealthInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values 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)
}

// AllocationResourceStatusHealthInfo: Health information for the reservation.
type AllocationResourceStatusHealthInfo struct {
	// DegradedBlockCount: The number of reservation blocks that are degraded.
	DegradedBlockCount int64 `json:"degradedBlockCount,omitempty"`
	// HealthStatus: The health status of the reservation.
	//
	// Possible values:
	//   "DEGRADED" - The reservation is degraded.
	//   "HEALTHY" - The reservation is healthy.
	//   "HEALTH_STATUS_UNSPECIFIED" - The health status of the reservation is
	// unspecified.
	HealthStatus string `json:"healthStatus,omitempty"`
	// HealthyBlockCount: The number of reservation blocks that are healthy.
	HealthyBlockCount int64 `json:"healthyBlockCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DegradedBlockCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DegradedBlockCount") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s AllocationResourceStatusHealthInfo) MarshalJSON() ([]byte, error) {
	type NoMethod AllocationResourceStatusHealthInfo
	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 isSCSI.
	// For performance characteristics of SCSI over NVMe, seeLocal SSD performance.
	//
	// Possible values:
	//   "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: 10
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"`
	// 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. [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. [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. [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
	// acustomer-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 storecustomer-supplied
	// encryption keys, so you cannot use your own keys to encrypt disks in
	// amanaged 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. [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, seeAbout
	// persistent disks.
	//
	// Possible values:
	//   "NVME"
	//   "SCSI"
	Interface string `json:"interface,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#attachedDisk for attached disks.
	Kind string `json:"kind,omitempty"`
	// Licenses: Output only. [Output Only] Any valid publicly visible licenses.
	Licenses []string `json:"licenses,omitempty"`
	// Mode: The mode in which to attach this disk, either READ_WRITE orREAD_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: Output only. 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. [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
	// ofinitializeParams.sourceImage orinitializeParams.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 orPERSISTENT. If not
	// specified, the default isPERSISTENT.
	//
	// Possible values:
	//   "PERSISTENT"
	//   "SCRATCH"
	Type string `json:"type,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   string `json:"diskType,omitempty"`
	// EnableConfidentialCompute: Whether this disk is using confidential compute
	// mode.
	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
	// Labels: Labels to apply to this disk. These can be later modified by
	// thedisks.setLabels method. This field is only applicable for
	// persistent disks.
	Labels map[string]string `json:"labels,omitempty"`
	// Licenses: A list of publicly visible licenses. Reserved for Google's use.
	Licenses []string `json:"licenses,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 theExtreme 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: Input only. Resource manager tags to be bound to the
	// disk. Tag keys and values
	// have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 orinitializeParams.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,
	// specifyfamily/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: Thecustomer-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
	// storecustomer-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"`
	// SourceSnapshot: The source snapshot to create this disk. When creating a new
	// instance
	// boot disk, one of initializeParams.sourceSnapshot
	// orinitializeParams.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.
	//
	// Note: You cannot create VMs in bulk using a snapshot as the source. Use
	// an image instead when you create VMs using
	// the bulk
	// insert method.
	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
	// SourceSnapshotEncryptionKey: Thecustomer-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"`
	// 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"`
	// 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)
}

// Autoscaler: Represents an Autoscaler resource.
//
// Google Compute Engine has two Autoscaler resources:
//
// * Zonal (/compute/docs/reference/rest/v1/autoscalers)
// * Regional (/compute/docs/reference/rest/v1/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 theregionAutoscalers resource.
type Autoscaler struct {
	// AutoscalingPolicy: The configuration parameters for the autoscaling
	// algorithm. You can define
	// one or more signals for an autoscaler:
	// cpuUtilization,customMetricUtilizations, andloadBalancingUtilization.
	//
	// If none of these are specified, the default will be to autoscale based
	// oncpuUtilization to 0.6 or 60%.
	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 withRFC1035.
	// 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. [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. [Output Only] URL of theregion
	// where the instance group resides (for autoscalers living in regional
	// scope).
	Region string `json:"region,omitempty"`
	// ScalingScheduleStatus: Output only. [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"`
	// 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 forCommonly
	// 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. [Output Only] URL of thezone
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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"`
	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"`
	// StabilizationPeriodSec: The number of seconds that autoscaler waits for load
	// stabilization before
	// making scale-in decisions. This is referred to as the
	// stabilization period (/compute/docs/autoscaler#stabilization_period).
	// This might appear as a delay in scaling in but it is an important
	// mechanism
	// for your application to not have fluctuating size due to short term
	// load
	// fluctuations.
	//
	// The default stabilization period is 600 seconds.
	StabilizationPeriodSec int64 `json:"stabilizationPeriodSec,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.
	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 is0.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 Monitoringfilter
	// string forTimeSeries.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 orDOUBLE.
	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
	// examplepubsub.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
	// ishttps://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
}

// 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.
	//   "IN_FLIGHT" - Balance based on the number of in-flight requests.
	//   "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 onbalancingMode). 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 than0.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 abalancingMode. 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.
	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 aninstance
	// 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
	// withhttps://www.googleapis.com/) to specify the instance group
	// or NEG. Partial URLs are not supported.
	//
	// If haPolicy is specified, backends must refer to NEG resources of
	// type
	// GCE_VM_IP.
	Group string `json:"group,omitempty"`
	// MaxConnections: Defines a target maximum number of simultaneous connections.
	// For usage
	// guidelines, seeConnection
	// balancing mode and Utilization
	// balancing mode. Not available if the backend'sbalancingMode is RATE.
	MaxConnections int64 `json:"maxConnections,omitempty"`
	// MaxConnectionsPerEndpoint: Defines a target maximum number of simultaneous
	// connections.  For usage
	// guidelines, seeConnection
	// balancing mode and Utilization
	// balancing mode.
	//
	// Not available if the backend's balancingMode isRATE.
	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
	// MaxConnectionsPerInstance: Defines a target maximum number of simultaneous
	// connections.
	// For usage guidelines, seeConnection
	// balancing mode and Utilization
	// balancing mode.
	//
	// Not available if the backend's balancingMode isRATE.
	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
	// MaxInFlightRequests: Defines a maximum number of in-flight requests for the
	// whole NEG or
	// instance group. Not available if backend's balancingMode isRATE or
	// CONNECTION.
	MaxInFlightRequests int64 `json:"maxInFlightRequests,omitempty"`
	// MaxInFlightRequestsPerEndpoint: Defines a maximum number of in-flight
	// requests for a single endpoint.
	// Not available if backend's balancingMode is RATE
	// or CONNECTION.
	MaxInFlightRequestsPerEndpoint int64 `json:"maxInFlightRequestsPerEndpoint,omitempty"`
	// MaxInFlightRequestsPerInstance: Defines a maximum number of in-flight
	// requests for a single VM.
	// Not available if backend's balancingMode is RATE
	// or CONNECTION.
	MaxInFlightRequestsPerInstance int64 `json:"maxInFlightRequestsPerInstance,omitempty"`
	// MaxRate: Defines a maximum number of HTTP requests per second (RPS).
	// For
	// usage guidelines, seeRate
	// balancing mode and Utilization
	// balancing mode.
	//
	// Not available if the backend's balancingMode isCONNECTION.
	MaxRate int64 `json:"maxRate,omitempty"`
	// MaxRatePerEndpoint: Defines a maximum target for requests per second (RPS).
	// For usage
	// guidelines, seeRate
	// balancing mode and Utilization
	// balancing mode.
	//
	// Not available if the backend's balancingMode isCONNECTION.
	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
	// MaxRatePerInstance: Defines a maximum target for requests per second (RPS).
	// For usage
	// guidelines, seeRate
	// balancing mode and Utilization
	// balancing mode.
	//
	// Not available if the backend's balancingMode isCONNECTION.
	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
	// MaxUtilization: Optional parameter to define a target capacity for
	// theUTILIZATION balancing mode. The valid range is[0.0, 1.0].
	//
	// For usage guidelines, seeUtilization
	// balancing mode.
	MaxUtilization float64 `json:"maxUtilization,omitempty"`
	// OrchestrationInfo: Information about the resource or system that manages the
	// backend.
	OrchestrationInfo *BackendBackendOrchestrationInfo `json:"orchestrationInfo,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"`
	// Possible values:
	//   "LONG" - Most of the requests are expected to take more than multiple
	// seconds to
	// finish.
	//   "SHORT" - Most requests are expected to finish with a sub-second latency.
	//   "TRAFFIC_DURATION_UNSPECIFIED" - Traffic duration is unspecified.
	TrafficDuration string `json:"trafficDuration,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
}

// BackendBackendOrchestrationInfo: A message containing information about the
// resource or system that manages
// the backend.
type BackendBackendOrchestrationInfo struct {
	// ResourceUri: The URI of the resource or system that manages the backend.
	ResourceUri string `json:"resourceUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// 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, readBackend 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 inRFC3339
	// 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: Output only. 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:
	//   "EXTERNAL_MANAGED" - Signifies that this will be used for regional
	// external Application Load
	// Balancers.
	//   "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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *BackendBucketParams `json:"params,omitempty"`
	// Region: Output only. [Output Only] URL of the region where the regional
	// backend bucket
	// resides. This field is not applicable to global backend buckets.
	// 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"`
	// UsedBy: Output only. [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)
}

type BackendBucketAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of BackendBucketsScopedList resources.
	Items map[string]BackendBucketsScopedList `json:"items,omitempty"`
	// Kind: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *BackendBucketAggregatedListWarning `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 BackendBucketAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendBucketAggregatedListWarning: [Output Only] Informational warning
// message.
type BackendBucketAggregatedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*BackendBucketAggregatedListWarningData `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 BackendBucketAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendBucketAggregatedListWarningData 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 BackendBucketAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketAggregatedListWarningData
	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.
	//
	// If no value is provided for cdnPolicy.cacheMode, it defaults
	// to CACHE_ALL_STATIC.
	//
	// 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-maxage).
	// 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), 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-maxage) 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 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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// BackendBucketParams: Additional Backend Bucket parameters.
type BackendBucketParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	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 BackendBucketParams) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendBucketUsedBy struct {
	// Reference: Output only. [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)
}

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

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

// BackendBucketsScopedListWarning: Informational warning which replaces the
// list of
// backend services when the list is empty.
type BackendBucketsScopedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*BackendBucketsScopedListWarningData `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 BackendBucketsScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketsScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type BackendBucketsScopedListWarningData 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 BackendBucketsScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod BackendBucketsScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// BackendCustomMetric: Custom Metrics are used for CUSTOM_METRICS
// balancing_mode.
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-64
	// characters
	// long and match the regular expression
	// `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the
	// first character must be a lowercase letter, and all following
	// characters must be a dash, period, underscore, lowercase letter, or
	// digit, except the last character, which cannot be a dash, period,
	// or
	// underscore. 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/v1/backendServices)
// * Regional
// (https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices)
//
// For more information, seeBackend
// 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 cannot be specified with haPolicy.
	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 cannot be specified with haPolicy.
	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
	// whenlocalityLbPolicy is set to MAGLEV orRING_HASH.
	//
	// This field is applicable to either:
	//
	//    - A regional backend service with the service protocol set to HTTP,
	//    HTTPS, HTTP2 or H2C, 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. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomMetrics: List of custom metrics that are used for
	// theWEIGHTED_ROUND_ROBIN locality_lb_policy.
	CustomMetrics []*BackendServiceCustomMetric `json:"customMetrics,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 cannot be specified with haPolicy.
	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: Configures self-managed High Availability (HA) for External and
	// Internal
	// Protocol Forwarding.
	//
	// The backends of this regional backend service must only specify
	// zonal
	// network endpoint groups (NEGs) of type GCE_VM_IP.
	//
	// When haPolicy is set for an Internal Passthrough Network Load Balancer,
	// the
	// regional backend service must set the network field. All zonal NEGs
	// must
	// belong to the same network. However, individual NEGs can
	// belong to different subnetworks of that network.
	//
	// When haPolicy is specified, the set of attached network endpoints across
	// all backends comprise an High Availability domain from which one endpoint
	// is selected as the active endpoint (the leader) that receives
	// all
	// traffic.
	//
	// haPolicy can be added only at backend service creation time. Once set up,
	// it cannot be deleted.
	//
	// Note that haPolicy is not for load balancing, and therefore cannot
	// be
	// specified with sessionAffinity, connectionTrackingPolicy,
	// and
	// failoverPolicy.
	//
	// haPolicy requires customers to be responsible for tracking backend
	// endpoint health and electing a leader among the healthy
	// endpoints.
	// Therefore, haPolicy cannot be specified with healthChecks.
	//
	// haPolicy can only be specified for External Passthrough Network
	// Load
	// Balancers and Internal Passthrough Network Load Balancers.
	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
	// unless
	// haPolicy is specified. Backend services with internet or serverless
	// NEG
	// backends must not have a health check.
	//
	// healthChecks[] cannot be specified with haPolicy.
	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. [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 toChoosing
	// 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, seeDefine
	// 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 Maglev:
	//    A Fast and Reliable Software Network Load Balancer.
	//    - 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 Endpoint-Load-Metrics. The reported
	//    metrics to use for computing the weights are specified via
	// thecustomMetrics field.
	//
	//    This field is applicable to either:
	//       - A regional backend service with the service protocol set to HTTP,
	//       HTTPS, HTTP2 or H2C, 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 isMAGLEV.
	//
	//    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.
	//
	//    localityLbPolicy cannot be specified with haPolicy.
	//
	// 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, seeMaglev:
	// A Fast and Reliable Software Network Load Balancer.
	//   "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_GCP_RENDEZVOUS" - Per-instance weighted Load Balancing via
	// health check reported weights.
	// In internal passthrough network load balancing, it is weighted
	// rendezvous hashing.
	// This option is only supported in internal passthrough network
	// load
	// balancing.
	//   "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
	// Endpoint-Load-Metrics. The reported metrics
	// to use for computing the weights are specified via the
	// 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 withRFC1035.
	// 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 must be set for Internal Passthrough Network Load Balancers
	// when
	// the haPolicy is enabled, and for External Passthrough Network Load
	// Balancers when the haPolicy fastIpMove is enabled.
	//
	// This field can only be specified when the load balancing scheme is set
	// toINTERNAL, or when the load balancing scheme is set toEXTERNAL and haPolicy
	// fastIpMove is enabled.
	Network string `json:"network,omitempty"`
	// NetworkPassThroughLbTrafficPolicy: Configures traffic steering properties of
	// internal passthrough Network
	// Load Balancers.
	//
	// networkPassThroughLbTrafficPolicy cannot be specified with haPolicy.
	NetworkPassThroughLbTrafficPolicy *BackendServiceNetworkPassThroughLbTrafficPolicy `json:"networkPassThroughLbTrafficPolicy,omitempty"`
	// OrchestrationInfo: Information about the resource or system that manages the
	// backend service.
	OrchestrationInfo *BackendServiceOrchestrationInfo `json:"orchestrationInfo,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 service protocol set to HTTP, HTTPS, HTTP2 or H2C, 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *BackendServiceParams `json:"params,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, H2C, 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:
	//   "GRPC" - gRPC (available for Traffic Director).
	//   "H2C" - HTTP2 over cleartext
	//   "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. [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"`
	// 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_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).
	//
	// sessionAffinity cannot be specified with haPolicy.
	//
	// 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
	// toSTRONG_COOKIE_AFFINITY.
	StrongSessionAffinityCookie *BackendServiceHttpCookie `json:"strongSessionAffinityCookie,omitempty"`
	// Subsetting: subsetting cannot be specified with haPolicy.
	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. [Output Only] List of resources referencing given
	// backend service.
	UsedBy []*BackendServiceUsedBy `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. "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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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.
	//
	// If no value is provided for cdnPolicy.cacheMode, it defaults
	// to CACHE_ALL_STATIC.
	//
	// 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-maxage).
	// 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), 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-maxage) 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 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 isPER_CONNECTION (default
	// tracking mode) or the Session
	// Affinity is configured for 5-tuple. They do not persist forUDP.
	//
	// 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)
}

// BackendServiceCustomMetric: Custom Metrics are used for
// WEIGHTED_ROUND_ROBIN
// locality_lb_policy.
type BackendServiceCustomMetric struct {
	// DryRun: If true, the metric data is not used for load balancing.
	DryRun bool `json:"dryRun,omitempty"`
	// Name: Name of a custom utilization signal. The name must be 1-64
	// characters
	// long and match the regular expression
	// `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the
	// first character must be a lowercase letter, and all following
	// characters must be a dash, period, underscore, lowercase letter, or
	// digit, except the last character, which cannot be a dash, period,
	// or
	// underscore. 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 BackendServiceCustomMetric) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceCustomMetric
	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 if the protocol
	// isTCP, UDP, or UNSPECIFIED.
	//
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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: Specifies whether fast IP move is enabled, and if so, the
	// mechanism to
	// achieve it.
	//
	// Supported values are:
	//
	//    - DISABLED: Fast IP Move is disabled. You can only use the
	//    haPolicy.leader API to update the leader.
	//    - >GARP_RA: Provides a method to very quickly define a new network
	//    endpoint as the leader. This method is faster than updating the leader
	//    using the haPolicy.leader API. Fast IP move works as follows: The VM
	//    hosting the network endpoint that should become the new leader sends
	//    either a Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router
	//    Advertisement(RA) packet (IPv6).  Google Cloud immediately but
	//    temporarily associates the forwarding rule IP address with that VM, and
	//    both new and in-flight packets are quickly delivered to that VM.
	//
	//
	//
	// Note the important properties of the Fast IP Move functionality:
	//
	//    - The GARP/RA-initiated re-routing stays active for approximately 20
	//    minutes. After triggering fast failover, you must also
	//    appropriately set the haPolicy.leader.
	//    -  The new leader instance should continue to send GARP/RA packets
	//    periodically every 10 seconds until at least 10 minutes after updating
	//    the haPolicy.leader (but stop immediately if it is no longer the
	// leader).
	//    - After triggering a fast failover, we recommend that you wait at least
	//    3 seconds before sending another GARP/RA packet from a different VM
	//    instance to avoid race conditions.
	//    - Don't send GARP/RA packets from different VM
	//    instances at the same time. If multiple instances continue to send
	//    GARP/RA packets, traffic might be routed to different destinations in an
	//    alternating order. This condition ceases when a single instance
	//    issues a GARP/RA packet.
	//    - The GARP/RA request always takes priority over the leader API.
	//    Using the haPolicy.leader API to change the leader to a different
	//    instance will have no effect until the GARP/RA request becomes
	//    inactive.
	//    - The GARP/RA packets should follow the GARP/RA
	//    Packet Specifications..
	//    -  When multiple forwarding rules refer to a regional backend service,
	//    you need only send a GARP or RA packet for a single forwarding rule
	//    virtual IP. The virtual IPs for all forwarding rules targeting the same
	//    backend service will also be moved to the sender of the GARP or RA
	//    packet.
	//
	//
	//
	// The following are the Fast IP Move limitations (that is, when fastIPMove
	// is not DISABLED):
	//
	//    - Multiple forwarding rules cannot use the same IP address if one of
	//    them refers to a regional backend service with fastIPMove.
	//    - The regional backend service must set the network field, and all
	//    NEGs must belong to that network. However, individual
	//    NEGs can belong to different subnetworks of that network.
	//    - The maximum number of network endpoints across all backends of a
	//    backend service with fastIPMove is 32.
	//    - The maximum number of backend services with fastIPMove that can have
	//    the same network endpoint attached to one of its backends is 64.
	//    - The maximum number of backend services with fastIPMove in a VPC in a
	//    region is 64.
	//    - The network endpoints that are attached to a backend of a backend
	//    service with fastIPMove cannot resolve to Gen3+ machines for IPv6.
	//    - Traffic directed to the leader by a static route next hop will not be
	//    redirected to a new leader by fast failover. Such traffic will only be
	//    redirected once an haPolicy.leader update has taken effect. Only traffic
	//    to the forwarding rule's virtual IP will be redirected to a new leader
	// by
	//    fast failover.
	//
	//
	// haPolicy.fastIPMove can be set only at backend service creation time.
	// Once set, it cannot be updated.
	//
	// By default, fastIpMove is set to DISABLED.
	//
	// Possible values:
	//   "DISABLED"
	//   "GARP_RA"
	FastIPMove string `json:"fastIPMove,omitempty"`
	// Leader: Selects one of the network endpoints attached to the backend NEGs
	// of
	// this service as the active endpoint (the leader) that receives
	// all
	// traffic.
	//
	// When the leader changes, there is no connection draining to persist
	// existing connections on the old leader.
	//
	// You are responsible for selecting a suitable endpoint as the
	// leader. For example, preferring a healthy endpoint over unhealthy ones.
	// Note that this service does not track backend endpoint health, and
	// selects the configured leader unconditionally.
	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: A fully-qualified URL (starting with
	// https://www.googleapis.com/)
	// of the zonal Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints
	// that the leader is attached to.
	//
	// The leader's backendGroup must already be specified as a backend of
	// this backend service. Removing a backend that is designated as the
	// leader's backendGroup is not permitted.
	BackendGroup string `json:"backendGroup,omitempty"`
	// NetworkEndpoint: The network endpoint within the leader.backendGroup that
	// is
	// designated as the leader.
	//
	// This network endpoint cannot be detached from the NEG specified in
	// the haPolicy.leader.backendGroup until the leader is updated with
	// another network endpoint, or the leader is removed from the haPolicy.
	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: The name of the VM instance of the leader network endpoint.
	// The
	// instance must already be attached to the NEG specified in
	// the
	// haPolicy.leader.backendGroup.
	//
	// The name must be 1-63 characters long, and comply with
	// RFC1035.
	// Authorization requires the following IAM permission on the
	// specified resource instance: compute.instances.use
	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"`
	// 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. [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)
}

// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, seeUse
	// 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, seeMaglev:
	// A Fast and Reliable Software Network Load Balancer.
	//   "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_GCP_RENDEZVOUS" - Per-instance weighted Load Balancing via
	// health check reported weights.
	// In internal passthrough network load balancing, it is weighted
	// rendezvous hashing.
	// This option is only supported in internal passthrough network
	// load
	// balancing.
	//   "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
	// Endpoint-Load-Metrics. The reported metrics
	// to use for computing the weights are specified via the
	// 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"`
	// 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.
	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
}

// BackendServiceOrchestrationInfo: A message containing information about the
// resource or system that manages
// the backend service.
type BackendServiceOrchestrationInfo struct {
	// ResourceUri: The resource URI of the resource or system that manages the
	// backend
	// service.
	ResourceUri string `json:"resourceUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BackendServiceParams: Additional Backend Service parameters.
type BackendServiceParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	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 BackendServiceParams) MarshalJSON() ([]byte, error) {
	type NoMethod BackendServiceParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 ofRFC5880
	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
	// packet. This is specified in
	// section 4.1 ofRFC5880
	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
	// Demand: The demand bit of the BFD packet. This is specified in section 4.1
	// ofRFC5880
	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 ofRFC5880
	//
	// 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
	// ofRFC5880
	Final bool `json:"final,omitempty"`
	// Length: The length of the BFD Control packet in bytes. This is specified in
	// section
	// 4.1 ofRFC5880
	Length int64 `json:"length,omitempty"`
	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the BFD
	// packet. This is
	// specified in section 4.1 ofRFC5880
	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
	// MinRxIntervalMs: The Required Min RX Interval value in the BFD packet. This
	// is specified in
	// section 4.1 ofRFC5880
	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet. This
	// is specified in
	// section 4.1 ofRFC5880
	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
	// Multiplier: The detection time multiplier of the BFD packet. This is
	// specified in
	// section 4.1 ofRFC5880
	Multiplier int64 `json:"multiplier,omitempty"`
	// Multipoint: The multipoint bit of the BFD packet. This is specified in
	// section 4.1 ofRFC5880
	Multipoint bool `json:"multipoint,omitempty"`
	// MyDiscriminator: The My Discriminator value in the BFD packet. This is
	// specified in section
	// 4.1 ofRFC5880
	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
	// Poll: The Poll bit of the BFD packet. This is specified in section 4.1
	// ofRFC5880
	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 ofRFC5880
	//
	// 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
	// ofRFC5880.
	Version int64 `json:"version,omitempty"`
	// YourDiscriminator: The Your Discriminator value in the BFD packet. This is
	// specified in
	// section 4.1 ofRFC5880
	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"`
	// 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 ofRFC5880
	//
	// 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 ofRFC5880
	//
	// 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"`
	// 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"`
	// 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. [Output only] AS-PATH for the route
	AsPaths []*BgpRouteAsPath `json:"asPaths,omitempty"`
	// Communities: Output only. [Output only] BGP communities in human-readable
	// A:B format.
	Communities []string `json:"communities,omitempty"`
	// Destination: Output only. [Output only] Destination IP range for the route,
	// in human-readable CIDR
	// format
	Destination *BgpRouteNetworkLayerReachabilityInformation `json:"destination,omitempty"`
	// Med: Output only. [Output only] BGP multi-exit discriminator
	Med int64 `json:"med,omitempty"`
	// Origin: Output only. [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. [Output only] ASNs in the path segment. When type is
	// SEQUENCE, these are
	// ordered.
	Asns []int64 `json:"asns,omitempty"`
	// Asns32: Output only. [Output only] ASNs in the path segment. This field is
	// for better
	// support of 32 bit ASNs as the other asns field suffers from overflow
	// when
	// the ASN is larger. When type is SEQUENCE, these are ordered.
	Asns32 []int64 `json:"asns32,omitempty"`
	// Type: Output only. [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 {
	// 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. "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 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 {
	// InstantSnapshotGroupParameters: The parameters for the instant snapshot
	// group.
	InstantSnapshotGroupParameters *InstantSnapshotGroupParameters `json:"instantSnapshotGroupParameters,omitempty"`
	// SnapshotGroupParameters: The parameters for the snapshot group. The usage of
	// snapshot group feature
	// is restricted.
	SnapshotGroupParameters *SnapshotGroupParameters `json:"snapshotGroupParameters,omitempty"`
	// 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.
	// "InstantSnapshotGroupParameters") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstantSnapshotGroupParameters")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values 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"`
	// InstanceFlexibilityPolicy: A flexible specification of machine type of
	// instances to create.
	InstanceFlexibilityPolicy *InstanceFlexibilityPolicy `json:"instanceFlexibilityPolicy,omitempty"`
	// 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 choosing target zone. For more information,
	// seeCreate 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. Ifmin_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 asinst-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
	// nameinst-0050, then instance names generated using the patterninst-####
	// 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 withinstanceProperties 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: Output only. 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 BulkSetLabelsRequest 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
	// may
	// optionally 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 BulkSetLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod BulkSetLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

func (s BulkZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod BulkZoneSetLabelsRequest
	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 {
	// CacheTags: A list of cache tags used to identify cached objects.
	//
	//
	//    - Cache tags are specified when the response is first cached, by setting
	//    the `Cache-Tag` response header at the origin.
	//    - Multiple cache tags in the same invalidation request are treated as
	//    Boolean `OR` - for example, `tag1 OR tag2 OR tag3`.
	//    - If other fields are also specified, these are treated as Boolean `AND`
	//    with any tags.
	//
	//
	// Up to 10 tags can be specified in a single invalidation request.
	CacheTags []string `json:"cacheTags,omitempty"`
	// 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. "CacheTags") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CacheTags") to include in API
	// requests with the JSON null value. By default, fields with empty values 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)
}

// CachePolicy: Message containing CachePolicy configuration for URL Map's
// Route Action.
type CachePolicy struct {
	// CacheBypassRequestHeaderNames: Bypass the cache when the specified request
	// headers are matched by name,
	// e.g. Pragma or Authorization headers. Values are case-insensitive. Up to
	// 5
	// header names can be specified. The cache is bypassed for all
	// `cacheMode`
	// values.
	CacheBypassRequestHeaderNames []string `json:"cacheBypassRequestHeaderNames,omitempty"`
	// CacheKeyPolicy: The cache key configuration. If not specified, the default
	// behavior depends
	// on the backend type: for Backend Services, the complete request URI is
	// used; for Backend Buckets, the request URI is used without the protocol
	// or
	// host, and only query parameters known to Cloud Storage are included.
	CacheKeyPolicy *CachePolicyCacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
	// CacheMode: Specifies the cache setting for all responses from this route. If
	// not
	// specified, Cloud CDN uses `CACHE_ALL_STATIC` mode.
	//
	// 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.
	//   "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching headers to
	// cache content.
	// Responses without these headers will not be cached at the 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 for
	// cached
	// content. This is used to clamp the max-age (or Expires) value sent to
	// the
	// client. With `FORCE_CACHE_ALL`, the lesser of `clientTtl` and
	// `defaultTtl`
	// is used for the response max-age directive, along with a "public"
	// directive. For cacheable content in `CACHE_ALL_STATIC` mode,
	// `clientTtl`
	// clamps the max-age from the origin (if specified), or else sets the
	// response max-age directive to the lesser of the `clientTtl`
	// and
	// `defaultTtl`, and also ensures a "public" cache-control directive
	// is
	// present. The maximum allowed value is 31,622,400s (1 year). If
	// not
	// specified, Cloud CDN uses 3600s (1 hour) for `CACHE_ALL_STATIC` mode.
	// Cannot exceed `maxTtl`. Cannot be specified when `cacheMode`
	// is
	// `USE_ORIGIN_HEADERS`.
	ClientTtl *Duration `json:"clientTtl,omitempty"`
	// DefaultTtl: Specifies the default TTL for cached content for responses that
	// do not have
	// an existing valid TTL (max-age or s-maxage). Setting a TTL of "0"
	// means
	// "always revalidate". The value of `defaultTtl` cannot be set to a
	// value
	// greater than that of `maxTtl`. 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).
	// Infrequently
	// accessed objects may be evicted from the cache before the defined TTL.
	// If
	// not specified, Cloud CDN uses 3600s (1 hour) for `CACHE_ALL_STATIC`
	// and
	// `FORCE_CACHE_ALL` modes. Cannot be specified when `cacheMode`
	// is
	// `USE_ORIGIN_HEADERS`.
	DefaultTtl *Duration `json:"defaultTtl,omitempty"`
	// MaxTtl: Specifies the maximum allowed TTL for cached content. 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).
	// Infrequently accessed objects may be evicted from the cache before
	// the
	// defined TTL. If not specified, Cloud CDN uses 86400s (1 day)
	// for
	// `CACHE_ALL_STATIC` mode. Can be specified only for `CACHE_ALL_STATIC`
	// cache
	// mode.
	MaxTtl *Duration `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 `cacheMode` 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 `cacheMode` is set
	// to
	// `FORCE_CACHE_ALL`, negative caching applies to all responses
	// with the specified response code, and overrides any caching headers.
	// By
	// default, Cloud CDN applies the following TTLs to these HTTP status codes:
	//
	// * 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
	// * 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s
	// * 405 (Method Not Found), 501 (Not Implemented): 60s
	//
	// These defaults can be overridden in `negativeCachingPolicy`.
	// If not specified, Cloud CDN applies negative caching by default.
	NegativeCaching bool `json:"negativeCaching,omitempty"`
	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
	// code.
	// `negativeCaching` must be enabled to configure
	// `negativeCachingPolicy`.
	// Omitting the policy and leaving `negativeCaching` enabled will use
	// Cloud
	// CDN's default cache TTLs. Note that when specifying an
	// explicit
	// `negativeCachingPolicy`, 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 []*CachePolicyNegativeCachingPolicy `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. If not
	// specified,
	// Cloud CDN applies request coalescing by default.
	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-maxage) of a
	// cached
	// response.
	// The maximum allowed value is 604800 (1 week).
	// Set this to zero (0) to disable serve-while-stale.
	ServeWhileStale *Duration `json:"serveWhileStale,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "CacheBypassRequestHeaderNames") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CacheBypassRequestHeaderNames")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CachePolicyCacheKeyPolicy: Message containing what to include in the cache
// key for a request for Cache
// Policy defined on Route Action.
type CachePolicyCacheKeyPolicy struct {
	// ExcludedQueryParameters: Names of query string parameters to exclude in
	// cache keys. All other
	// parameters will be included. Either specify `excludedQueryParameters`
	// or `includedQueryParameters`, not both. '&' and '=' will be percent
	// encoded and not treated as delimiters.
	//
	// Note: This field applies to routes that use backend services. Attempting
	// to set it on a route that points exclusively to Backend Buckets will
	// result in a configuration error. For routes that point to a Backend
	// Bucket, use `includedQueryParameters` to define which parameters should
	// be part of the cache key.
	ExcludedQueryParameters []string `json:"excludedQueryParameters,omitempty"`
	// IncludeHost: If true, requests to different hosts will be cached
	// separately.
	//
	// Note: This setting is only applicable to routes that use a Backend
	// Service. It does not affect requests served by a Backend Bucket, as the
	// host is never included in a Backend Bucket's cache key. Attempting to set
	// it on a route that points exclusively to Backend Buckets will result in
	// a
	// configuration error.
	IncludeHost bool `json:"includeHost,omitempty"`
	// IncludeProtocol: If true, http and https requests will be cached
	// separately.
	//
	// Note: This setting is only applicable to routes that use a Backend
	// Service. It does not affect requests served by a Backend Bucket, as
	// the
	// protocol is never included in a Backend Bucket's cache key. Attempting
	// to
	// set on a route that points exclusively to Backend Buckets will result in
	// a configuration error.
	IncludeProtocol bool `json:"includeProtocol,omitempty"`
	// IncludeQueryString: If true, include query string parameters in the cache
	// key according to
	// `includedQueryParameters` and `excludedQueryParameters`. If neither
	// is set, the entire query string will be included. If false, the query
	// string will be excluded from the cache key entirely.
	//
	// Note: This field applies to routes that use backend services. Attempting
	// to set it on a route that points exclusively to Backend Buckets will
	// result in a configuration error. For routes that point to a Backend
	// Bucket, use `includedQueryParameters` to define which parameters should
	// be part of the cache key.
	IncludeQueryString bool `json:"includeQueryString,omitempty"`
	// IncludedCookieNames: 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.
	//
	// Note: This setting is only applicable to routes that use a Backend
	// Service. It does not affect requests served by a Backend Bucket.
	// Attempting to set it on a route that points exclusively to Backend
	// Buckets will result in a configuration error. Up to 5 cookie names can
	// be
	// specified.
	IncludedCookieNames []string `json:"includedCookieNames,omitempty"`
	// IncludedHeaderNames: Allows HTTP request headers (by name) to be used in the
	// cache key.
	IncludedHeaderNames []string `json:"includedHeaderNames,omitempty"`
	// IncludedQueryParameters: Names of query string parameters to include in
	// cache keys. All other
	// parameters will be excluded. Either specify `includedQueryParameters`
	// or `excludedQueryParameters`, not both. '&' and '=' will be percent
	// encoded and not treated as delimiters.
	IncludedQueryParameters []string `json:"includedQueryParameters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExcludedQueryParameters") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExcludedQueryParameters") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CachePolicyNegativeCachingPolicy: Specify CDN TTLs for response error codes.
type CachePolicyNegativeCachingPolicy 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 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). Infrequently
	// accessed
	// objects may be evicted from the cache before the defined TTL.
	Ttl *Duration `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 CachePolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod CachePolicyNegativeCachingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CalendarModeAdviceRequest: A request to recommend the best way to consume
// the specified resources in the
// future.
type CalendarModeAdviceRequest struct {
	// FutureResourcesSpecs: Specification of resources to create in the
	// future.
	// The key of the map is an arbitrary string specified by the caller.
	// Value of the map is a specification of required resources and
	// their
	// constraints. Currently only one value is allowed in this map.
	FutureResourcesSpecs map[string]FutureResourcesSpec `json:"futureResourcesSpecs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FutureResourcesSpecs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FutureResourcesSpecs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CalendarModeAdviceResponse: A response containing the recommended way of
// creating the specified resources
// in the future. It contains (will contain) multiple recommendations that
// can
// be analyzed by the customer and the best one can be picked.
type CalendarModeAdviceResponse struct {
	// Recommendations: Recommendations where, how and when to create the requested
	// resources
	// in order to maximize their obtainability and minimize cost.
	Recommendations []*CalendarModeRecommendation `json:"recommendations,omitempty"`

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

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

// CalendarModeRecommendation: A single recommendation to create requested
// resources. Contains detailed
// recommendations for every future resources specification specified
// in
// CalendarModeAdviceRequest.
type CalendarModeRecommendation struct {
	// RecommendationsPerSpec: Recommendations for every future resource
	// specification passed in
	// CalendarModeAdviceRequest. Keys of the map correspond to keys
	// specified in the request.
	RecommendationsPerSpec map[string]FutureResourcesRecommendation `json:"recommendationsPerSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RecommendationsPerSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RecommendationsPerSpec") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s CalendarModeRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod CalendarModeRecommendation
	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 {
	// 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. "MaxConnections") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxConnections") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// 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)
}

// Commitment: Represents a regional resource-based commitment
// resource.
//
// Creating this commitment resource means that you are purchasing
// a
// resource-based committed use contract, with an explicit start and end
// time.
// You can purchase resource-based commitments for both hardware and
// software
// resources. For more information, read
// Resource-based committed use discounts
type Commitment struct {
	// AutoRenew: Specifies whether to automatically renew the commitment at the
	// end of its
	// current term. The default value is false. If you set the field
	// to true, each time your commitment reaches the end of its
	// term, Compute Engine automatically renews it for another term. You
	// can
	// update this field anytime before the commitment expires. For example, if
	// the commitment is set to expire at 12 AM UTC-8 on January 3, 2027, you
	// can
	// update this field until 11:59 PM UTC-8 on January 2, 2027.
	AutoRenew bool `json:"autoRenew,omitempty"`
	// Category: The category of the commitment; specifies whether the commitment
	// is for
	// hardware or software resources. Category MACHINE specifies
	// that you are committing to hardware machine resources such asVCPU or MEMORY,
	// listed in resources.
	// Category LICENSE specifies that you are committing to software
	// licenses, listed in licenseResources.
	// Note that if you specify MACHINE commitments, then you must
	// also specify a type to indicate the machine series of the
	// hardware resource that you are committing to.
	//
	// Possible values:
	//   "CATEGORY_UNSPECIFIED"
	//   "LICENSE"
	//   "MACHINE"
	Category string `json:"category,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomEndTimestamp: [Input Only] Optional, specifies the requested
	// commitment end time inRFC3339 text format. Use this option when the
	// desired
	// commitment's end date is later than the start date + term duration.
	CustomEndTimestamp string `json:"customEndTimestamp,omitempty"`
	// Description: An optional description of the commitment. You can provide this
	// property
	// when you create the resource.
	Description string `json:"description,omitempty"`
	// EndTimestamp: Output only. [Output Only] Commitment end time inRFC3339
	// text format.
	EndTimestamp         string   `json:"endTimestamp,omitempty"`
	ExistingReservations []string `json:"existingReservations,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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: The list of source commitments that you are merging
	// to create the new
	// merged commitment. For more information, see
	// Merging commitments.
	MergeSourceCommitments []string `json:"mergeSourceCommitments,omitempty"`
	// Name: Name of the commitment. You must specify a name when you purchase
	// the
	// commitment. The name must be 1-63 characters long, and comply
	// withRFC1035.
	// 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"`
	// Params: Input only. Additional params passed with the request, but not
	// persisted
	// as part of resource payload.
	Params *CommitmentParams `json:"params,omitempty"`
	// Plan: The minimum time duration that you commit to purchasing resources.
	// The plan that you choose determines the preset term length of the
	// commitment (which is 1 year or 3 years) and affects the discount rate
	// that
	// you receive for your resources. Committing to a longer time
	// duration
	// typically gives you a higher discount rate. The supported values for
	// this
	// field are TWELVE_MONTH (1 year), andTHIRTY_SIX_MONTH (3 years).
	//
	// Possible values:
	//   "INVALID"
	//   "THIRTY_SIX_MONTH"
	//   "TWELVE_MONTH"
	Plan string `json:"plan,omitempty"`
	// Region: Output only. [Output Only] URL of the region where the commitment
	// and committed
	// resources are located.
	Region string `json:"region,omitempty"`
	// Reservations: The list of new reservations that you want to create and
	// attach to this
	// commitment.
	//
	// You must attach reservations to your commitment if your commitment
	// specifies any GPUs or Local SSD disks. For more information, see
	// Attach reservations to resource-based commitments.
	//
	// Specify this property only if you want to create new
	// reservations to attach. To attach existing reservations, specify
	// theexistingReservations property instead.
	Reservations []*Reservation `json:"reservations,omitempty"`
	// ResourceStatus: Output only. [Output Only] Status information for Commitment
	// resource.
	ResourceStatus *CommitmentResourceStatus `json:"resourceStatus,omitempty"`
	// Resources: The list of all the hardware resources, with their types and
	// amounts, that
	// you want to commit to. Specify as a separate entry in the list for
	// each
	// individual resource type.
	Resources []*ResourceCommitment `json:"resources,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SplitSourceCommitment: The source commitment from which you are transferring
	// resources to create
	// the new split commitment. For more information, see
	// Split commitments.
	SplitSourceCommitment string `json:"splitSourceCommitment,omitempty"`
	// StartTimestamp: Output only. [Output Only] Commitment start time
	// inRFC3339
	// text format.
	StartTimestamp string `json:"startTimestamp,omitempty"`
	// Status: Output only. [Output Only] Status of the commitment with regards to
	// eventual expiration
	// (each commitment has an end date defined). Status can be one of
	// the
	// following values: NOT_YET_ACTIVE, ACTIVE, orEXPIRED.
	//
	// Possible values:
	//   "ACTIVE"
	//   "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. [Output Only] An optional, human-readable
	// explanation of the status.
	StatusMessage string `json:"statusMessage,omitempty"`
	// Type: The type of commitment; specifies the
	// machine series for which you want to commit to purchasing resources.
	// The choice of machine series affects the discount rate and the
	// eligible
	// resource types.
	//
	//  The type must be one of the following: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,
	// GRAPHICS_OPTIMIZED_G4,GRAPHICS_OPTIMIZED_G4_VGPU,MEMORY_OPTIMIZED,
	// MEMORY_OPTIMIZED_M3,MEMORY_OPTIMIZED_X4, STORAGE_OPTIMIZED_Z3. For
	// example, type MEMORY_OPTIMIZED specifies a commitment that
	// applies only to eligible resources of memory optimized M1 and M2
	// machine
	// series. Type GENERAL_PURPOSE specifies a commitment that
	// applies only to eligible resources of general purpose N1 machine series.
	//
	// Possible values:
	//   "ACCELERATOR_OPTIMIZED"
	//   "ACCELERATOR_OPTIMIZED_A3"
	//   "ACCELERATOR_OPTIMIZED_A3_MEGA"
	//   "ACCELERATOR_OPTIMIZED_A3_ULTRA"
	//   "ACCELERATOR_OPTIMIZED_A4"
	//   "COMPUTE_OPTIMIZED"
	//   "COMPUTE_OPTIMIZED_C2D"
	//   "COMPUTE_OPTIMIZED_C3"
	//   "COMPUTE_OPTIMIZED_C3D"
	//   "COMPUTE_OPTIMIZED_H3"
	//   "COMPUTE_OPTIMIZED_H4D"
	//   "GENERAL_PURPOSE"
	//   "GENERAL_PURPOSE_C4"
	//   "GENERAL_PURPOSE_C4A"
	//   "GENERAL_PURPOSE_C4D"
	//   "GENERAL_PURPOSE_E2"
	//   "GENERAL_PURPOSE_N2"
	//   "GENERAL_PURPOSE_N2D"
	//   "GENERAL_PURPOSE_N4"
	//   "GENERAL_PURPOSE_N4A"
	//   "GENERAL_PURPOSE_N4D"
	//   "GENERAL_PURPOSE_T2D"
	//   "GRAPHICS_OPTIMIZED"
	//   "GRAPHICS_OPTIMIZED_G4"
	//   "GRAPHICS_OPTIMIZED_G4_VGPU"
	//   "MEMORY_OPTIMIZED"
	//   "MEMORY_OPTIMIZED_M3"
	//   "MEMORY_OPTIMIZED_M4"
	//   "MEMORY_OPTIMIZED_M4_6TB"
	//   "MEMORY_OPTIMIZED_X4_1440_24T" - CUD bucket for X4 machine with 1440 vCPUs
	// and 24TB of memory.
	//   "MEMORY_OPTIMIZED_X4_16TB"
	//   "MEMORY_OPTIMIZED_X4_1920_32T" - CUD bucket for X4 machine with 1920 vCPUs
	// and 32TB of memory.
	//   "MEMORY_OPTIMIZED_X4_24TB"
	//   "MEMORY_OPTIMIZED_X4_32TB"
	//   "MEMORY_OPTIMIZED_X4_480_6T" - CUD bucket for X4 machine with 480 vCPUs
	// and 6TB of memory.
	//   "MEMORY_OPTIMIZED_X4_480_8T" - CUD bucket for X4 machine with 480 vCPUs
	// and 8TB of memory.
	//   "MEMORY_OPTIMIZED_X4_960_12T" - CUD bucket for X4 machine with 960 vCPUs
	// and 12TB of memory.
	//   "MEMORY_OPTIMIZED_X4_960_16T" - CUD bucket for X4 machine with 960 vCPUs
	// and 16TB of memory.
	//   "STORAGE_OPTIMIZED_Z3"
	//   "TYPE_UNSPECIFIED" - Note for internal users: When adding a new enum Type
	// for v1, make sure
	// to also add it in the comment for the `optional Type type` definition.
	// This ensures that the public documentation displays the new enum Type.
	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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// CommitmentParams: Additional commitment params.
type CommitmentParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// commitment. Tag keys and
	// values have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 CommitmentParams) MarshalJSON() ([]byte, error) {
	type NoMethod CommitmentParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CommitmentResourceStatus: [Output Only] Contains output only fields.
type CommitmentResourceStatus struct {
	// CustomTermEligibilityEndTimestamp: Output only. [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.
	// "CustomTermEligibilityEndTimestamp") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "CustomTermEligibilityEndTimestamp") to include in API requests with the
	// JSON null value. By default, fields with empty values 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 CommitmentsScopedList struct {
	// Commitments: [Output Only] The 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// CompositeHealthCheck: Represents a composite health check.
//
// A composite health check resource specifies the health source resources
// and
// the health destination resource to which the aggregated health result
// from
// the health source resources is delivered.
type CompositeHealthCheck struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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 CompositeHealthCheck. An up-to-date fingerprint
	// must be provided in order to patch the CompositeHealthCheck; Otherwise,
	// the request will fail with error 412 conditionNotMet. To see
	// the latest fingerprint, make a get() request to retrieve
	// the
	// CompositeHealthCheck.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HealthDestination: URL to the destination resource. Must be set. Must be
	// aForwardingRule. The ForwardingRule must have
	// load balancing scheme INTERNAL orINTERNAL_MANAGED and must be regional and
	// in the same region
	// as the CompositeHealthCheck (cross-region deployment forINTERNAL_MANAGED is
	// not supported). Can be mutated.
	HealthDestination string `json:"healthDestination,omitempty"`
	// HealthSources: URLs to the HealthSource resources whose results are
	// AND'ed.
	// I.e. he aggregated result is is HEALTHY only if all sources
	// are HEALTHY. Must have at least 1. Must not have more than 10.
	// Must be regional and in the same region as theCompositeHealthCheck. Can be
	// mutated.
	HealthSources []string `json:"healthSources,omitempty"`
	// Id: Output only. [Output Only] A unique identifier for this resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#compositeHealthCheck for composite 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 withRFC1035.
	// 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. [Output Only] URL of the region where the composite
	// health check 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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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 CompositeHealthCheck) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CompositeHealthCheckAggregatedList: Contains a list of
// CompositeHealthChecksScopedList.
type CompositeHealthCheckAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of CompositeHealthChecksScopedList resources.
	Items map[string]CompositeHealthChecksScopedList `json:"items,omitempty"`
	// Kind: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *CompositeHealthCheckAggregatedListWarning `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 CompositeHealthCheckAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthCheckAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CompositeHealthCheckAggregatedListWarning: [Output Only] Informational
// warning message.
type CompositeHealthCheckAggregatedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*CompositeHealthCheckAggregatedListWarningData `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 CompositeHealthCheckAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthCheckAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CompositeHealthCheckAggregatedListWarningData 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 CompositeHealthCheckAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthCheckAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CompositeHealthCheckHealth: Response message for
// RegionCompositeHealthChecks.GetHealth
type CompositeHealthCheckHealth struct {
	// HealthSources: Health sources and their corresponding health states.
	HealthSources []*CompositeHealthChecksGetHealthResponseHealthSourceHealth `json:"healthSources,omitempty"`
	// HealthState: Health state of the CompositeHealthCheck.
	//
	// Possible values:
	//   "HEALTHY"
	//   "UNHEALTHY"
	//   "UNKNOWN"
	HealthState string `json:"healthState,omitempty"`
	// Kind: Output only. [Output Only] Type of resource.
	// Alwayscompute#compositeHealthCheckHealth for the health of
	// composite health checks.
	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. "HealthSources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthSources") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type CompositeHealthCheckList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of CompositeHealthCheck resources.
	Items []*CompositeHealthCheck `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#compositeHealthCheck for composite health checks.
	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 thanmaxResults, 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 *CompositeHealthCheckListWarning `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 CompositeHealthCheckList) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthCheckList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CompositeHealthCheckListWarning: [Output Only] Informational warning
// message.
type CompositeHealthCheckListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*CompositeHealthCheckListWarningData `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 CompositeHealthCheckListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthCheckListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CompositeHealthCheckListWarningData 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 CompositeHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthCheckListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CompositeHealthChecksGetHealthResponseHealthSourceHealth struct {
	// HealthState: Health state of the associated HealthSource resource.
	//
	// Possible values:
	//   "HEALTHY"
	//   "UNHEALTHY"
	//   "UNKNOWN"
	HealthState string `json:"healthState,omitempty"`
	// Source: Fully qualified URL of the associated HealthSource resource.
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HealthState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HealthState") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// CompositeHealthChecksScopedListWarning: Informational warning which replaces
// the list of composite health checks
// when the list is empty.
type CompositeHealthChecksScopedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*CompositeHealthChecksScopedListWarningData `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 CompositeHealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthChecksScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CompositeHealthChecksScopedListWarningData 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 CompositeHealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod CompositeHealthChecksScopedListWarningData
	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:
	//   "CCA" - Arm Confidential Compute Architecture.
	//   "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
	// inEnabling
	// 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 toHEADER_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 inallowOrigins or an item
	// inallowOriginRegexes.
	//
	// 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 inallowOrigins or an item
	// inallowOriginRegexes.
	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)
}

// CrossSiteNetwork: A resource that represents a cross-site network.
//
// You can use cross-site networks to connect your on-premises networks to
// each other through Interconnect connections.
type CrossSiteNetwork struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of the cross-site network.
	Description string `json:"description,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#crossSiteNetwork for cross-site networks.
	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 withRFC1035.
	// 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. [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 CrossSiteNetwork) MarshalJSON() ([]byte, error) {
	type NoMethod CrossSiteNetwork
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CrossSiteNetworkList: Response to the list request that contains a list of
// cross-site networks.
type CrossSiteNetworkList 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 CrossSiteNetwork resources.
	Items []*CrossSiteNetwork `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#crossSiteNetwork for cross-site 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 thanmaxResults, 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. [Output Only] Unreachable
	// resources.
	// end_interface: MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *CrossSiteNetworkListWarning `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 CrossSiteNetworkList) MarshalJSON() ([]byte, error) {
	type NoMethod CrossSiteNetworkList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CrossSiteNetworkListWarning: [Output Only] Informational warning message.
type CrossSiteNetworkListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*CrossSiteNetworkListWarningData `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 CrossSiteNetworkListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod CrossSiteNetworkListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type CrossSiteNetworkListWarningData 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 CrossSiteNetworkListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod CrossSiteNetworkListWarningData
	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 a401, then the rule for
	// 401 will be applied.
	// However if the backend service returns a 403, the rule for4xx 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 likepathMatcher, pathRule
	// and routeRule,
	// an errorService specified at a higher level in theUrlMap will be used.
	// IfUrlMap.defaultCustomErrorResponsePolicy contains one or
	// moreerrorResponseRules[], it must specifyerrorService.
	//
	// If load balancer cannot reach
	// the backendBucket, a simple Not Found Error will
	// be returned, with the original response code (oroverrideResponseCode if
	// configured).
	//
	// errorService is not supported for internal or regionalHTTP/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
	// allerrorResponseRules ofCustomErrorResponsePolicy.
	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 simpleNot 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 thersaEncryptedKey.
	// 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 thersaEncryptedKey.
	// 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] TheRFC
	// 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
	// acustomer-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)
}

// Date: Represents a whole or partial calendar date, such as a birthday. The
// time of
// day and time zone are either specified elsewhere or are insignificant.
// The
// date is relative to the Gregorian Calendar. This can represent one of
// the
// following:
//
//   - A full date, with non-zero year, month, and day values.
//   - A month and day, with a zero year (for example, an anniversary).
//   - A year on its own, with a zero month and a zero day.
//   - A year and month, with a zero day (for example, a credit card expiration
//     date).
//
// Related types:
//
// * google.type.TimeOfDay
// * google.type.DateTime
// * google.protobuf.Timestamp
type Date struct {
	// Day: Day of a month. Must be from 1 to 31 and valid for the year and month,
	// or 0
	// to specify a year by itself or a year and month where the day
	// isn't
	// significant.
	Day int64 `json:"day,omitempty"`
	// Month: Month of a year. Must be from 1 to 12, or 0 to specify a year without
	// a
	// month and day.
	Month int64 `json:"month,omitempty"`
	// Year: Year of the date. Must be from 1 to 9999, or 0 to specify a date
	// without
	// a year.
	Year int64 `json:"year,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 Date) MarshalJSON() ([]byte, error) {
	type NoMethod Date
	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
	// useACTIVE. Operations which create a new resource using aDEPRECATED resource
	// will return successfully, but with a
	// warning indicating the deprecated resource and recommending its
	// replacement. Operations which use OBSOLETE orDELETED resources will be
	// rejected and result in an error.
	//
	// Possible values:
	//   "ACTIVE"
	//   "DELETED"
	//   "DEPRECATED"
	//   "OBSOLETE"
	State string `json:"state,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/v1/disks)
// * Regional (/compute/docs/reference/rest/v1/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, readZonal 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. [Output Only] A list of disks this disk is
	// asynchronously replicated to.
	AsyncSecondaryDisks map[string]DiskAsyncReplicationList `json:"asyncSecondaryDisks,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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,
	// thediskEncryptionKey.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"`
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 error412 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. [Output Only] Last attach timestamp
	// inRFC3339
	// text format.
	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
	// LastDetachTimestamp: Output only. [Output Only] Last detach timestamp
	// inRFC3339
	// 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"`
	// Name: Name of the resource. Provided by the client when the resource is
	// created.
	// The name must be 1-63 characters long, and comply withRFC1035.
	// 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 theExtreme 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. [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. [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. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SizeGb: Size, in GB, of the persistent disk. You can specify
	// this field when creating a persistent disk using thesourceImage,
	// sourceSnapshot, orsourceDisk parameter, or specify it alone to create an
	// empty
	// persistent disk.
	//
	// If you specify this field along with a source, the value ofsizeGb 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. [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. [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. [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, specifyfamily/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: Thecustomer-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. [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. [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: Thecustomer-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. [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. [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"`
	// 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"`
	// Users: Output only. [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. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [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. [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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Input only. Resource manager tags to be bound to the
	// disk. Tag keys and values
	// have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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"`
	// 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)
}

// DiskType: Represents a Disk Type resource.
//
// Google Compute Engine has two Disk Type resources:
//
// * Regional (/compute/docs/reference/rest/v1/regionDiskTypes)
// * Zonal (/compute/docs/reference/rest/v1/diskTypes)
//
// You can choose from a variety of disk types based on your needs.
// For more information, readStorage options.
//
// The diskTypes resource represents disk types for a zonal
// persistent disk.
// For more information, readZonal 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 inRFC3339
	// 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. [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"`
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 DiskUpdateKmsKeyRequest struct {
	// KmsKeyName: Optional. The new KMS key to replace the current one on the
	// disk. If empty, the disk
	// will be re-encrypted using the primary version of the disk's current
	// KMS
	// key.
	//
	// The KMS key can be provided in the following formats:
	//
	//
	//      -
	// projects/project_id/locations/location/keyRings/key_ring/cryptoKeys/key
	//
	//
	// Where project is the project ID or
	// project number.
	KmsKeyName string `json:"kmsKeyName,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 DiskUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod DiskUpdateKmsKeyRequest
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	// inupdatePolicy.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.
	// By default, a regional MIG doesn't automatically select an AI zone to
	// create
	// instances, even if an AI zone is available in the specified region.
	// To
	// create instances in an AI zone in the selected region, you must
	// explicitly
	// specify it in the distribution policy together with the other
	// preferred
	// zones.
	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 thezone.
	// 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 regular expression of `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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [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. [Output Only] Type of the resource.
	// Alwayscompute#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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *ExternalVpnGatewayParams `json:"params,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. [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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 ExternalVpnGatewayParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	// * Inconsistent format is not supported. For instance:
	//   {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid.
	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 ExternalVpnGatewayParams) MarshalJSON() ([]byte, error) {
	type NoMethod ExternalVpnGatewayParams
	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, readFirewall 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. [Output Only] Creation timestamp
	// inRFC3339
	// 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 inCIDR 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"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *FirewallParams `json:"params,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"`
	// 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 inCIDR 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 thesourceTags 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
	// assourceServiceAccounts.
	// 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
	// insourceServiceAccount. The connection does not need to match
	// both fields for the firewall to apply.sourceServiceAccounts cannot be used
	// at the same time assourceTags 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
	// inallowed[].targetServiceAccounts cannot be used at the same time
	// astargetTags 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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// FirewallParams: Additional firewall parameters.
type FirewallParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	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 FirewallParams) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallParams
	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. [Output Only] Type of firewallPolicy associations.
	// Alwayscompute#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)
}

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

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

// FirewallPoliciesScopedListWarning: Informational warning which replaces the
// list of firewall policies when
// the list is empty.
type FirewallPoliciesScopedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*FirewallPoliciesScopedListWarningData `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 FirewallPoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPoliciesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FirewallPoliciesScopedListWarningData 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 FirewallPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod FirewallPoliciesScopedListWarningData
	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. [Output Only] Creation timestamp
	// inRFC3339
	// 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 error412 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. [Output only] Type of the resource.
	// Alwayscompute#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. [Output Only] The parent of the firewall policy.
	// This field is not applicable to network firewall policies.
	Parent string `json:"parent,omitempty"`
	// PolicyType: The type of the firewall policy. This field can be one
	// of
	// VPC_POLICY, RDMA_ROCE_POLICY or ULL_POLICY.
	//
	// Note: if not specified then VPC_POLICY will be used.
	//
	// Possible values:
	//   "RDMA_ROCE_POLICY"
	//   "ULL_POLICY"
	//   "VPC_POLICY"
	PolicyType string `json:"policyType,omitempty"`
	// Region: Output only. [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. [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. [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"`

	// 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. [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"`
	// ShortName: Output only. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 for firewall rules are: "allow",
	// "deny",
	// "apply_security_profile_group" and "goto_next".
	// Valid actions for packet mirroring rules are: "mirror", "do_not_mirror"
	// 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. [Output only] Type of the resource.
	// Returnscompute#firewallPolicyRule for firewall rules
	// andcompute#packetMirroringRule for packet mirroring 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 priority.
	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. [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 is one of 'apply_security_profile_group'
	// or
	// 'mirror'. Cannot be specified for other actions.
	SecurityProfileGroup string `json:"securityProfileGroup,omitempty"`
	// TargetForwardingRules: A list of forwarding rules to which this rule
	// applies.
	// This field allows you to control which load balancers get this rule.
	// For example, the following are valid values:
	//
	//
	//      -
	// https://www.googleapis.com/compute/v1/projects/project/global/forwardingRules/forwardingRule
	//      -
	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
	//      - projects/project/global/
	//      forwardingRules/forwardingRule
	//      - projects/project/regions/region/forwardingRules/
	//      forwardingRule
	TargetForwardingRules []string `json:"targetForwardingRules,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 astargetServiceAccounts.
	// If neither targetServiceAccounts nortargetSecureTag 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"`
	// TargetType: Target types of the firewall policy rule.
	// Default value is INSTANCES.
	//
	// Possible values:
	//   "INSTANCES"
	//   "INTERNAL_MANAGED_LB"
	TargetType string `json:"targetType,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"`
	// DestNetworkContext: Network context of the traffic destination. Allowed
	// values are:
	//
	//
	//      - UNSPECIFIED
	//      - INTERNET
	//      - NON_INTERNET
	//
	// Possible values:
	//   "INTERNET"
	//   "INTRA_VPC"
	//   "NON_INTERNET"
	//   "UNSPECIFIED"
	//   "VPC_NETWORKS"
	DestNetworkContext string `json:"destNetworkContext,omitempty"`
	// DestNetworkType: Network type of the traffic destination. Allowed values
	// are:
	//
	//
	//      - UNSPECIFIED
	//      - INTERNET
	//      - NON_INTERNET
	//
	// Possible values:
	//   "INTERNET"
	//   "INTRA_VPC"
	//   "NON_INTERNET"
	//   "UNSPECIFIED"
	//   "VPC_NETWORKS"
	DestNetworkType string `json:"destNetworkType,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"`
	// SrcNetworkContext: Network context of the traffic source. Allowed values
	// are:
	//
	//
	//      - UNSPECIFIED
	//      - INTERNET
	//      - INTRA_VPC
	//      - NON_INTERNET
	//      - VPC_NETWORKS
	//
	// Possible values:
	//   "INTERNET"
	//   "INTRA_VPC"
	//   "NON_INTERNET"
	//   "UNSPECIFIED"
	//   "VPC_NETWORKS"
	SrcNetworkContext string `json:"srcNetworkContext,omitempty"`
	// SrcNetworkType: Network type of the traffic source. Allowed values are:
	//
	//
	//      - UNSPECIFIED
	//      - INTERNET
	//      - INTRA_VPC
	//      - NON_INTERNET
	//      - VPC_NETWORKS
	//
	// Possible values:
	//   "INTERNET"
	//   "INTRA_VPC"
	//   "NON_INTERNET"
	//   "UNSPECIFIED"
	//   "VPC_NETWORKS"
	SrcNetworkType string `json:"srcNetworkType,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. [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)
}

// FlexibleTimeRange: Specifies a flexible time range with flexible start time
// and duration.
//
// It is possible to specify a contradictory time range that cannot be
// matched
// by any Interval. This causes a validation error.
type FlexibleTimeRange struct {
	MaxDuration             string `json:"maxDuration,omitempty"`
	MinDuration             string `json:"minDuration,omitempty"`
	StartTimeNotEarlierThan string `json:"startTimeNotEarlierThan,omitempty"`
	StartTimeNotLaterThan   string `json:"startTimeNotLaterThan,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 FlexibleTimeRange) MarshalJSON() ([]byte, error) {
	type NoMethod FlexibleTimeRange
	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/v1/globalForwardingRules)
// * Regional
// (https://cloud.google.com/compute/docs/reference/rest/v1/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 andvalidateForProxyless is
	// set to true, theIPAddress 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
	// inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/ad
	// dresses/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 andL3_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"
	//   "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 requiresallPorts 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"`
	// 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. [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. [Output Only] Creation timestamp
	// inRFC3339
	// 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
	// inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/pu
	// blicDelegatedPrefixes/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 aPacketMirroring
	// rule applies to them.
	// This can only be set to true for load balancers that have
	// theirloadBalancingScheme set to INTERNAL.
	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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 itsfilterMatchCriteria is set to
	// MATCH_ANY, at least one of thefilterLabels 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 multiplemetadataFilters
	// 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 thisForwardingRule
	// references.
	//
	// metadataFilters only applies to Loadbalancers that have
	// their loadBalancingScheme set toINTERNAL_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 withRFC1035.
	// 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 andSTANDARD. For
	// GlobalForwardingRule, the valid value isPREMIUM.
	//
	// 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.
	//   "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
	// overlappingportRanges.
	//
	// 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. [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. [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
	// withRFC1035.
	// 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
	// isEXTERNAL.
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 {
	// AggregateReservation: Aggregate reservation details for the future
	// reservation.
	AggregateReservation *AllocationAggregateReservation `json:"aggregateReservation,omitempty"`
	// 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"`
	// CommitmentInfo: If not present, then FR will not deliver a new commitment or
	// update an
	// existing commitment.
	CommitmentInfo *FutureReservationCommitmentInfo `json:"commitmentInfo,omitempty"`
	// Possible values:
	//   "CONFIDENTIAL_COMPUTE_TYPE_TDX" - Intel Trust Domain Extensions.
	//   "CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED"
	ConfidentialComputeType string `json:"confidentialComputeType,omitempty"`
	// CreationTimestamp: Output only. [Output Only] The creation timestamp for
	// this future reservation inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DeploymentType: Type of the deployment requested as part of future
	// reservation.
	//
	// Possible values:
	//   "DENSE" - The reserved capacity is made up of densely deployed reservation
	// blocks.
	//   "DEPLOYMENT_TYPE_UNSPECIFIED"
	DeploymentType string `json:"deploymentType,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you
	// create the future reservation.
	Description string `json:"description,omitempty"`
	// EnableEmergentMaintenance: Indicates if this group of VMs have emergent
	// maintenance enabled.
	EnableEmergentMaintenance bool `json:"enableEmergentMaintenance,omitempty"`
	// Id: Output only. [Output Only] A unique identifier for this future
	// reservation. The server
	// defines this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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
	// withRFC1035.
	// 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"`
	// Params: Input only. Additional params passed with the request, but not
	// persisted
	// as part of resource payload.
	Params *FutureReservationParams `json:"params,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"`
	// ReservationMode: The reservation mode which determines
	// reservation-termination behavior and
	// expected pricing.
	//
	// Possible values:
	//   "CALENDAR" - The delivered reservations will delivered at specified start
	// time and
	// terminated at specified end time along with terminating the VMs running
	// on it.
	//   "DEFAULT" - The delivered reservations do not terminate VMs at the end
	// of
	// reservations. This is default mode.
	//   "RESERVATION_MODE_UNSPECIFIED"
	ReservationMode string `json:"reservationMode,omitempty"`
	// ReservationName: Name of reservations where the capacity is provisioned at
	// the time of
	// delivery of  future reservations. If the reservation with the given
	// name
	// does not exist already, it is created automatically at the time of
	// Approval
	// with INACTIVE state till specified start-time. Either provide
	// the
	// reservation_name or a name_prefix.
	ReservationName string `json:"reservationName,omitempty"`
	// SchedulingType: Maintenance information for this reservation
	//
	// Possible values:
	//   "GROUPED" - Maintenance on all reserved instances in the reservation is
	// synchronized.
	//   "GROUP_MAINTENANCE_TYPE_UNSPECIFIED" - Unknown maintenance type.
	//   "INDEPENDENT" - Maintenance is not synchronized for this reservation.
	// Instead, each
	// instance has its own maintenance window.
	SchedulingType string `json:"schedulingType,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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.
	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
	// SpecificSkuProperties: Future Reservation configuration to indicate instance
	// properties and
	// total count.
	SpecificSkuProperties *FutureReservationSpecificSKUProperties `json:"specificSkuProperties,omitempty"`
	// Status: Output only. [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. [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. "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 FutureReservation) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureReservationCommitmentInfo struct {
	// CommitmentName: name of the commitment where capacity is being delivered to.
	CommitmentName string `json:"commitmentName,omitempty"`
	// CommitmentPlan: Indicates if a Commitment needs to be created as part of FR
	// delivery. If
	// this field is not present, then no
	// commitment needs to be created.
	//
	// Possible values:
	//   "INVALID"
	//   "THIRTY_SIX_MONTH"
	//   "TWELVE_MONTH"
	CommitmentPlan string `json:"commitmentPlan,omitempty"`
	// PreviousCommitmentTerms: Only applicable if FR is delivering to the same
	// reservation. If set, all
	// parent commitments will be extended to match the end date of the plan
	// for
	// this commitment.
	//
	// Possible values:
	//   "EXTEND" - All associated parent Committed Used Discount(s) end-date/term
	// will be
	// extended to the end-time of this future reservation. Default is to
	// extend previous commitment(s) time to the end_time of the reservation.
	//   "PREVIOUSCOMMITMENTTERM_UNSPECIFIED" - No changes to associated parents
	// Committed Used Discount(s) terms.
	PreviousCommitmentTerms string `json:"previousCommitmentTerms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CommitmentName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CommitmentName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// FutureReservationParams: Additional future reservation params.
type FutureReservationParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// future reservation. Tag keys and
	// values have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 FutureReservationParams) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationParams
	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. [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: Output only. Fully qualified urls of the
	// automatically created reservations at
	// start_time.
	AutoCreatedReservations []string `json:"autoCreatedReservations,omitempty"`
	// ExistingMatchingUsageInfo: Output only. [Output Only] Represents the
	// existing matching usage for the future
	// reservation.
	ExistingMatchingUsageInfo *FutureReservationStatusExistingMatchingUsageInfo `json:"existingMatchingUsageInfo,omitempty"`
	// FulfilledCount: Output only. 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. [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: Output only. 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: Output only. 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)
}

// FutureReservationStatusExistingMatchingUsageInfo: [Output Only] Represents
// the existing matching usage for the future
// reservation.
type FutureReservationStatusExistingMatchingUsageInfo struct {
	// Count: Output only. Count to represent min(FR
	// total_count,
	// matching_reserved_capacity+matching_unreserved_instances)
	Count int64 `json:"count,omitempty,string"`
	// Timestamp: Output only. Timestamp when the matching usage was calculated
	Timestamp string `json:"timestamp,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 FutureReservationStatusExistingMatchingUsageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod FutureReservationStatusExistingMatchingUsageInfo
	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. [Output Only] The description of the
	// FutureReservation before an
	// amendment was requested.
	Description string `json:"description,omitempty"`
	// ExistingMatchingUsageInfo: Output only. [Output Only] Represents the
	// matching usage for the future
	// reservation before an amendment was requested.
	ExistingMatchingUsageInfo *FutureReservationStatusExistingMatchingUsageInfo                `json:"existingMatchingUsageInfo,omitempty"`
	FutureReservationSpecs    *FutureReservationStatusLastKnownGoodStateFutureReservationSpecs `json:"futureReservationSpecs,omitempty"`
	// LockTime: Output only. [Output Only] The lock time of the FutureReservation
	// before an
	// amendment was requested.
	LockTime string `json:"lockTime,omitempty"`
	// NamePrefix: Output only. [Output Only] The name prefix of the Future
	// Reservation before an
	// amendment was requested.
	NamePrefix string `json:"namePrefix,omitempty"`
	// ProcurementStatus: Output only. [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. [Output Only] The previous share settings of the
	// Future Reservation.
	ShareSettings *ShareSettings `json:"shareSettings,omitempty"`
	// SpecificSkuProperties: Output only. [Output Only] The previous instance
	// related properties of the
	// Future Reservation.
	SpecificSkuProperties *FutureReservationSpecificSKUProperties `json:"specificSkuProperties,omitempty"`
	// TimeWindow: Output only. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of
	// resource.Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// FutureResourcesRecommendation: Recommendation for single resources
// specification, to be created in the
// future.
type FutureResourcesRecommendation struct {
	EndTime string `json:"endTime,omitempty"`
	// Location: The advised location for resource usage. When a zone, in
	// format
	// 'zones/'.
	// If not set, it means that no location is recommended - see
	// other_locations for details.
	Location string `json:"location,omitempty"`
	// OtherLocations: List of locations in the request scope that were
	// not
	// recommended. Keys of the map are zones, in format 'zones/'.
	// The values are status information indicating the recommendation status.
	OtherLocations map[string]FutureResourcesRecommendationOtherLocation `json:"otherLocations,omitempty"`
	// RecommendationId: Unique id of the recommendation, a UUID string generated
	// by the API.
	RecommendationId string `json:"recommendationId,omitempty"`
	// RecommendationType: Type of recommendation. Currently only
	// FUTURE_RESERVATION is supported.
	//
	// Possible values:
	//   "FUTURE_RESERVATION" - A Future Reservation is recommended.
	//   "RECOMMENDATION_TYPE_UNSPECIFIED" - Default value, unused.
	RecommendationType string `json:"recommendationType,omitempty"`
	StartTime          string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// FutureResourcesRecommendationOtherLocation: Information about recommendation
// status for locations
// that were allowed but not used by the response.
type FutureResourcesRecommendationOtherLocation struct {
	// Details: Details (human readable) describing the situation.
	// For example, if status is CONDITION_NOT_MET, then
	// details contain information about the parameters of the time window
	// that did not meet the required conditions.
	Details string `json:"details,omitempty"`
	// Status: Status of recommendation in this location.
	//
	// Possible values:
	//   "CONDITIONS_NOT_MET" - The requested resources are offered in this
	// location
	// but the requested time window is does not meet the required conditions.
	//   "NOT_SUPPORTED" - The requested resources are not offered in this
	// location.
	// Retrying the request will not change this status.
	//   "NO_CAPACITY" - The requested resources are offered in this location
	// and the requested time window is accepted
	// but there is no capacity within the requested time window.
	//   "OTHER_LOCATION_STATUS_UNDEFINED" - Default value, unused.
	//   "RECOMMENDED" - The requested resources are offered in this location
	// and it is possible to request them. However, another location
	// was better and was recommended.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// FutureResourcesSpec: Specification of resources to be created at some time
// in the future within an
// optionally specified set of locations, and within the specified time range.
type FutureResourcesSpec struct {
	// DeploymentType: Indicates if the reservation allocation strategy is static
	// (DENSE) or
	// dynamic (STANDARD). Defaults to DENSE.
	//
	// Possible values:
	//   "DENSE" - The reserved capacity is made up of densely deployed reservation
	// blocks.
	//   "DEPLOYMENT_TYPE_UNSPECIFIED"
	DeploymentType string `json:"deploymentType,omitempty"`
	// LocationPolicy: Optional location policy allowing to exclude some zone(s) in
	// which
	// the resources must not be created.
	LocationPolicy *FutureResourcesSpecLocationPolicy `json:"locationPolicy,omitempty"`
	// TargetResources: Specification of the reserved resources.
	TargetResources *FutureResourcesSpecTargetResources `json:"targetResources,omitempty"`
	// TimeRangeSpec: Specification of a time range in which the resources may be
	// created.
	// The time range specifies start of resource use and planned end of
	// resource
	// use.
	TimeRangeSpec *FlexibleTimeRange `json:"timeRangeSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeploymentType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeploymentType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type FutureResourcesSpecAggregateResources struct {
	// AcceleratorCount: Size of the request, in accelerator (chip) count.
	AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
	// VmFamily: The VM family that all instances scheduled against this
	// reservation
	// must belong to. Use for TPU reservations.
	//
	// Possible values:
	//   "VM_FAMILY_CLOUD_TPU_DEVICE_CT3"
	//   "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L"
	//   "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP"
	//   "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P"
	//   "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X"
	VmFamily string `json:"vmFamily,omitempty"`
	// WorkloadType: Workload type. Use for TPU reservations.
	//
	// 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. "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 FutureResourcesSpecAggregateResources) MarshalJSON() ([]byte, error) {
	type NoMethod FutureResourcesSpecAggregateResources
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type FutureResourcesSpecLocalSsdPartition struct {
	// DiskInterface: Disk interface. Defaults to SCSI.
	//
	// Possible values:
	//   "NVME"
	//   "SCSI"
	DiskInterface string `json:"diskInterface,omitempty"`
	// DiskSizeGb: The size of the disk in GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DiskInterface") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DiskInterface") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// FutureResourcesSpecLocationPolicy: Specification of locations to create
// resources in.
type FutureResourcesSpecLocationPolicy struct {
	// Locations: Preferences for specified locations.
	// Keys of the map are locations - zones, in format of 'zones/'.
	// Values are preferences for the zones.
	// If a zone is not specified in this map, it is ALLOWed.
	Locations map[string]FutureResourcesSpecLocationPolicyLocation `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 FutureResourcesSpecLocationPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod FutureResourcesSpecLocationPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FutureResourcesSpecLocationPolicyLocation: Preference for a single specified
// location.
type FutureResourcesSpecLocationPolicyLocation struct {
	// Preference: Preference for this location.
	//
	// 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. "Preference") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Preference") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type FutureResourcesSpecSpecificSKUResources struct {
	// InstanceCount: Size of the request, in instance count.
	InstanceCount int64 `json:"instanceCount,omitempty,string"`
	// LocalSsdPartitions: Local SSD partitions. You do not have to include SSD
	// partitions that
	// are built in the machine type.
	LocalSsdPartitions []*FutureResourcesSpecLocalSsdPartition `json:"localSsdPartitions,omitempty"`
	// MachineType: The machine type to use for instances that will use the
	// reservation.
	// This field only accepts machine type names. e.g. n2-standard-4
	// and does not accept machine type full or partial url.
	// e.g.
	// projects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4.
	// Use for GPU reservations.
	MachineType string `json:"machineType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

func (s FutureResourcesSpecTargetResources) MarshalJSON() ([]byte, error) {
	type NoMethod FutureResourcesSpecTargetResources
	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 theport 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 theport 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 GetVersionOperationMetadata struct {
	InlineSbomInfo *GetVersionOperationMetadataSbomInfo `json:"inlineSbomInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InlineSbomInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InlineSbomInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type GetVersionOperationMetadataSbomInfo struct {
	// CurrentComponentVersions: A mapping of components to their currently-applied
	// versions or other
	// appropriate identifiers.
	CurrentComponentVersions map[string]string `json:"currentComponentVersions,omitempty"`
	// TargetComponentVersions: A mapping of components to their target versions or
	// other appropriate
	// identifiers.
	TargetComponentVersions map[string]string `json:"targetComponentVersions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentComponentVersions")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentComponentVersions") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GetVersionOperationMetadataSbomInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GetVersionOperationMetadataSbomInfo
	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 error412 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)
}

// GlobalVmExtensionPolicy: Message describing GlobalVmExtensionPolicy object.
type GlobalVmExtensionPolicy struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// ExtensionPolicies: Required. Map from extension (eg: "cloudops") to its
	// policy configuration.
	// The key is the name of the extension.
	ExtensionPolicies map[string]GlobalVmExtensionPolicyExtensionPolicy `json:"extensionPolicies,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InstanceSelectors: Optional. Selector to target VMs for a policy.
	// There is a logical "AND" between instance_selectors.
	InstanceSelectors []*GlobalVmExtensionPolicyInstanceSelector `json:"instanceSelectors,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#globalVmExtensionPolicy for globalVmExtensionPolicies.
	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 withRFC1035.
	// 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"`
	// Priority: Optional. Used to resolve conflicts when multiple policies are
	// active for the same
	// extension. Defaults to 0.
	//
	// Larger the number, higher the priority. When the priority is the same,
	// the policy with the newer create time has higher priority.
	Priority int64 `json:"priority,omitempty"`
	// RolloutOperation: Required. The rollout strategy and status.
	RolloutOperation *GlobalVmExtensionPolicyRolloutOperation `json:"rolloutOperation,omitempty"`
	// ScopedResourceStatus: Output only. [Output Only] The scoped resource status.
	// It's only for tracking the
	// purging status of the policy.
	//
	// Possible values:
	//   "SCOPED_RESOURCE_STATUS_DELETING" - The zonal policies are being deleted.
	//   "SCOPED_RESOURCE_STATUS_UNSPECIFIED" - Default value. This value is
	// unused.
	ScopedResourceStatus string `json:"scopedResourceStatus,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource's resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// UpdateTimestamp: Output only. [Output Only] Update timestamp inRFC3339
	// text format.
	UpdateTimestamp string `json:"updateTimestamp,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 GlobalVmExtensionPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalVmExtensionPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GlobalVmExtensionPolicyExtensionPolicy: Policy for a single extension.
type GlobalVmExtensionPolicyExtensionPolicy struct {
	// PinnedVersion: Optional. The version pinning for the extension.
	// If empty, the extension will be installed with the latest version
	// released by the extension producer.
	PinnedVersion string `json:"pinnedVersion,omitempty"`
	// StringConfig: Optional. String configuration. Any string payload that the
	// extension
	// understands.
	StringConfig string `json:"stringConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PinnedVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PinnedVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GlobalVmExtensionPolicyInstanceSelector: Selector to target VMs for a zone
// VM extension policy.
type GlobalVmExtensionPolicyInstanceSelector struct {
	// LabelSelector: Optional. Labels within the LabelSelector are OR'd.
	LabelSelector *GlobalVmExtensionPolicyLabelSelector `json:"labelSelector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LabelSelector") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LabelSelector") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GlobalVmExtensionPolicyLabelSelector: A LabelSelector is applicable for a VM
// only if it matches all labels in
// the LabelSelector.
type GlobalVmExtensionPolicyLabelSelector struct {
	// InclusionLabels: Optional. Labels as key value pairs.
	// A VM should contain all the pairs specified in this map to be
	// selected;
	// Labels within the LabelSelector are OR'ed.
	InclusionLabels map[string]string `json:"inclusionLabels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InclusionLabels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InclusionLabels") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GlobalVmExtensionPolicyList: Response to list global VM extension policy
// resources.
type GlobalVmExtensionPolicyList 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 GlobalVmExtensionPolicy resources.
	Items []*GlobalVmExtensionPolicy `json:"items,omitempty"`
	// Kind: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *GlobalVmExtensionPolicyListWarning `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 GlobalVmExtensionPolicyList) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalVmExtensionPolicyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GlobalVmExtensionPolicyListWarning: [Output Only] Informational warning
// message.
type GlobalVmExtensionPolicyListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*GlobalVmExtensionPolicyListWarningData `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 GlobalVmExtensionPolicyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalVmExtensionPolicyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GlobalVmExtensionPolicyListWarningData 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 GlobalVmExtensionPolicyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalVmExtensionPolicyListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GlobalVmExtensionPolicyRolloutOperation: Represents the rollout operation
type GlobalVmExtensionPolicyRolloutOperation struct {
	// RolloutInput: Required. The rollout input which defines the rollout plan.
	RolloutInput *GlobalVmExtensionPolicyRolloutOperationRolloutInput `json:"rolloutInput,omitempty"`
	// RolloutStatus: Output only. [Output Only] The rollout status of the policy.
	RolloutStatus *GlobalVmExtensionPolicyRolloutOperationRolloutStatus `json:"rolloutStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RolloutInput") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RolloutInput") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type GlobalVmExtensionPolicyRolloutOperationRolloutInput struct {
	// ConflictBehavior: Optional. Specifies the behavior of the rollout if a
	// conflict is detected in a
	// project during a rollout. This only applies to `insert` and
	// `update`
	// methods.
	//
	// A conflict occurs in the following cases:
	//
	// * `insert` method: If the zonal policy already exists when the insert
	//   happens.
	// * `update` method: If the zonal policy was modified by a zonal API call
	//   outside of this rollout.
	//
	// Possible values are the following:
	//
	// * "" (empty string): If a conflict occurs, the local value is not
	//   overwritten. This is the default behavior.
	// * "overwrite": If a conflict occurs, the local value is overwritten
	//   with the rollout value.
	ConflictBehavior string `json:"conflictBehavior,omitempty"`
	// Name: Optional. The name of the rollout
	// plan.
	// Ex.
	// projects//locations/global/rolloutPlans/.
	Name string `json:"name,omitempty"`
	// PredefinedRolloutPlan: Optional. Specifies the predefined rollout plan for
	// the policy. Valid values
	// are `SLOW_ROLLOUT` and `FAST_ROLLOUT`. The recommended value
	// is
	// `SLOW_ROLLOUT` for progressive rollout. For more information, see
	// Rollout
	// plans for global policies.
	//
	// Possible values:
	//   "FAST_ROLLOUT"
	//   "ROLLOUT_PLAN_UNSPECIFIED"
	//   "SLOW_ROLLOUT"
	PredefinedRolloutPlan string `json:"predefinedRolloutPlan,omitempty"`
	// RetryUuid: Optional. The UUID that identifies a policy rollout retry attempt
	// for update and
	// delete operations. Set this field only when retrying a rollout for
	// an
	// existing extension policy.
	//
	// * `update` method: Lets you retry policy rollout without changes.
	// An error occurs if you set retry_uuid but the policy is modified.
	// * `delete` method: Lets you retry policy deletion rollout if the
	// previous deletion rollout is not finished and the policy is in the
	// DELETING state. If you set this field when the policy is not in the
	// DELETING state, an error occurs.
	RetryUuid string `json:"retryUuid,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConflictBehavior") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConflictBehavior") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type GlobalVmExtensionPolicyRolloutOperationRolloutStatus struct {
	// CurrentRollouts: Output only. [Output Only] The current rollouts for the
	// latest version of the
	// resource. There should be only one current rollout, but for
	// scalability, we make it repeated.
	CurrentRollouts []*GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata `json:"currentRollouts,omitempty"`
	// PreviousRollout: Output only. [Output Only] The last completed rollout
	// resource. This field will not
	// be populated until the first rollout is completed.
	PreviousRollout *GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata `json:"previousRollout,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentRollouts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentRollouts") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata struct {
	// LocationRolloutStatus: Output only. [Output Only] The rollout status for
	// each location. The list of the
	// locations is the same as the list of locations in the rollout plan.
	LocationRolloutStatus map[string]GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus `json:"locationRolloutStatus,omitempty"`
	// Rollout: Output only. [Output Only] The name of the rollout.
	// Ex. projects//locations/global/rollouts/.
	Rollout string `json:"rollout,omitempty"`
	// RolloutPlan: Output only. [Output Only] The name of the rollout
	// plan.
	// Ex.
	// projects//locations/global/rolloutPlans/.
	RolloutPlan string `json:"rolloutPlan,omitempty"`
	// State: Output only. [Output Only] The overall state of the rollout.
	//
	// Possible values:
	//   "STATE_CANCELLED" - Iteration was explicitly cancelled.
	//   "STATE_COMPLETED" - Iteration completed, with all actions being
	// successful.
	//   "STATE_FAILED" - Iteration completed, with failures.
	//   "STATE_PAUSED" - The rollout is paused.
	//   "STATE_PROCESSING" - Iteration is in progress.
	//   "STATE_UNKNOWN" - Impossible to determine current state of the iteration.
	//   "STATE_UNSPECIFIED" - Default value. This value is unused.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LocationRolloutStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LocationRolloutStatus") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus struct {
	// State: Output only. [Output Only] The state of the location rollout.
	//
	// Possible values:
	//   "LOCATION_ROLLOUT_STATE_COMPLETED" - The location rollout is completed.
	//   "LOCATION_ROLLOUT_STATE_FAILED" - The location rollout has failed.
	//   "LOCATION_ROLLOUT_STATE_NOT_STARTED" - The location rollout has not
	// started.
	//   "LOCATION_ROLLOUT_STATE_SKIPPED" - The location rollout is skipped.
	//   "LOCATION_ROLLOUT_STATE_UNSPECIFIED" - Default value. This value is
	// unused.
	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 GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus) MarshalJSON() ([]byte, error) {
	type NoMethod GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GroupMaintenanceInfo: Maintenance Info for ReservationBlocks.
type GroupMaintenanceInfo struct {
	// InstanceMaintenanceOngoingCount: Describes number of instances that have
	// ongoing maintenance.
	InstanceMaintenanceOngoingCount int64 `json:"instanceMaintenanceOngoingCount,omitempty"`
	// InstanceMaintenancePendingCount: Describes number of instances that have
	// pending maintenance.
	InstanceMaintenancePendingCount int64 `json:"instanceMaintenancePendingCount,omitempty"`
	// MaintenanceOngoingCount: Progress for ongoing maintenance for this group of
	// VMs/hosts.
	// Describes number of hosts in the block that have ongoing maintenance.
	MaintenanceOngoingCount int64 `json:"maintenanceOngoingCount,omitempty"`
	// MaintenancePendingCount: Progress for ongoing maintenance for this group of
	// VMs/hosts.
	// Describes number of hosts in the block that have pending maintenance.
	MaintenancePendingCount int64 `json:"maintenancePendingCount,omitempty"`
	// SchedulingType: The type of maintenance for the reservation.
	//
	// Possible values:
	//   "GROUPED" - Maintenance on all reserved instances in the reservation is
	// synchronized.
	//   "GROUP_MAINTENANCE_TYPE_UNSPECIFIED" - Unknown maintenance type.
	//   "INDEPENDENT" - Maintenance is not synchronized for this reservation.
	// Instead, each
	// instance has its own maintenance window.
	SchedulingType string `json:"schedulingType,omitempty"`
	// SubblockInfraMaintenanceOngoingCount: Describes number of subblock
	// Infrastructure that has ongoing maintenance.
	// Here, Subblock Infrastructure Maintenance pertains to upstream
	// hardware
	// contained in the Subblock that is necessary for a VM Family(e.g.
	// NVLink
	// Domains). Not all VM Families will support this field.
	SubblockInfraMaintenanceOngoingCount int64 `json:"subblockInfraMaintenanceOngoingCount,omitempty"`
	// SubblockInfraMaintenancePendingCount: Describes number of subblock
	// Infrastructure that has pending maintenance.
	//  Here, Subblock Infrastructure Maintenance pertains to upstream hardware
	//  contained in the Subblock that is necessary for a VM Family (e.g. NVLink
	//  Domains). Not all VM Families will support this field.
	SubblockInfraMaintenancePendingCount int64 `json:"subblockInfraMaintenancePendingCount,omitempty"`
	// UpcomingGroupMaintenance: Maintenance information on this group of VMs.
	UpcomingGroupMaintenance *UpcomingMaintenance `json:"upcomingGroupMaintenance,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "InstanceMaintenanceOngoingCount") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceMaintenanceOngoingCount")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuestAttributes: A guest attributes entry.
type GuestAttributes struct {
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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. [Output Only] The value of the requested queried
	// path.
	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
	// SelfLink: Output only. [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. [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
	//    - SNP_SVSM_CAPABLE
	//    - CCA_CAPABLE
	//
	//
	// For more information, see
	// Enabling guest operating system features.
	//
	// Possible values:
	//   "BARE_METAL_LINUX_COMPATIBLE"
	//   "CCA_CAPABLE"
	//   "FEATURE_TYPE_UNSPECIFIED"
	//   "GVNIC"
	//   "IDPF"
	//   "MULTI_IP_SUBNET"
	//   "SECURE_BOOT"
	//   "SEV_CAPABLE"
	//   "SEV_LIVE_MIGRATABLE"
	//   "SEV_LIVE_MIGRATABLE_V2"
	//   "SEV_SNP_CAPABLE"
	//   "SNP_SVSM_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 through65535.
	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 theport 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 withRFC3986.
	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"`
	// 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 through65535.
	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 theport 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 withRFC3986.
	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"`
	// 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 through65535.
	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 theport 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 withRFC3986.
	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"`
	// 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)
}

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

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

// HealthAggregationPoliciesScopedListWarning: Informational warning which
// replaces the list of health aggregation
// policies when the list is empty.
type HealthAggregationPoliciesScopedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*HealthAggregationPoliciesScopedListWarningData `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 HealthAggregationPoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPoliciesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthAggregationPoliciesScopedListWarningData 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 HealthAggregationPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPoliciesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthAggregationPolicy: Represents a health aggregation policy.
//
// A health aggregation policy resource defines a policy to aggregate
// health.
//
// For more information, see
// Health checks overview.
type HealthAggregationPolicy struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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 HealthAggregationPolicy. An up-to-date fingerprint
	// must be provided in order to patch the HealthAggregationPolicy;
	// Otherwise,
	// the request will fail with error 412 conditionNotMet. To see
	// the latest fingerprint, make a get() request to retrieve
	// the
	// HealthAggregationPolicy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HealthyPercentThreshold: Can only be set if the policyType field
	// isBACKEND_SERVICE_POLICY. Specifies the threshold (as a
	// percentage) of healthy endpoints required in order to consider
	// the
	// aggregated health result HEALTHY. Defaults to 60. Must be in
	// range [0, 100]. Not applicable if the policyType field
	// isDNB_PUBLIC_IP_POLICY. Can be mutated. This field is optional,
	// and will be set to the default if unspecified. Note that both this
	// threshold and minHealthyThreshold must be satisfied in order
	// for HEALTHY to be the aggregated result. "Endpoints" refers to
	// network
	// endpoints within a Network Endpoint Group or instances within an
	// Instance
	// Group.
	HealthyPercentThreshold int64 `json:"healthyPercentThreshold,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#healthAggregationPolicy for health aggregation
	// policies.
	Kind string `json:"kind,omitempty"`
	// MinHealthyThreshold: Can only be set if the policyType field
	// isBACKEND_SERVICE_POLICY. Specifies the minimum number of
	// healthy endpoints required in order to consider the aggregated health
	// result HEALTHY. Defaults to 1. Must be positive. Not
	// applicable if the policyType field isDNB_PUBLIC_IP_POLICY. Can be mutated.
	// This field is optional,
	// and will be set to the default if unspecified. Note that both this
	// threshold and healthyPercentThreshold must be satisfied in
	// order for HEALTHY to be the aggregated result. "Endpoints" refers to
	// network endpoints within a Network Endpoint Group or instances within
	// an
	// Instance Group.
	MinHealthyThreshold int64 `json:"minHealthyThreshold,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 withRFC1035.
	// 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"`
	// PolicyType: Specifies the type of the healthAggregationPolicy. The only
	// allowed value
	// for global resources is DNS_PUBLIC_IP_POLICY. The only allowed
	// value for regional resources is BACKEND_SERVICE_POLICY. Must
	// be specified when the healthAggregationPolicy is created, and cannot
	// be
	// mutated.
	//
	// Possible values:
	//   "BACKEND_SERVICE_POLICY"
	//   "DNS_PUBLIC_IP_POLICY"
	PolicyType string `json:"policyType,omitempty"`
	// Region: Output only. [Output Only] URL of the region where the health
	// aggregation policy
	// 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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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 HealthAggregationPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthAggregationPolicyAggregatedList: Contains a list of
// HealthAggregationPoliciesScopedList.
type HealthAggregationPolicyAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthAggregationPoliciesScopedList resources.
	Items map[string]HealthAggregationPoliciesScopedList `json:"items,omitempty"`
	// Kind: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HealthAggregationPolicyAggregatedListWarning `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 HealthAggregationPolicyAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPolicyAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthAggregationPolicyAggregatedListWarning: [Output Only] Informational
// warning message.
type HealthAggregationPolicyAggregatedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*HealthAggregationPolicyAggregatedListWarningData `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 HealthAggregationPolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPolicyAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthAggregationPolicyAggregatedListWarningData 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 HealthAggregationPolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPolicyAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthAggregationPolicyList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthAggregationPolicy resources.
	Items []*HealthAggregationPolicy `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#healthAggregationPolicy for health aggregation
	// 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 thanmaxResults, 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 *HealthAggregationPolicyListWarning `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 HealthAggregationPolicyList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPolicyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthAggregationPolicyListWarning: [Output Only] Informational warning
// message.
type HealthAggregationPolicyListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*HealthAggregationPolicyListWarningData `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 HealthAggregationPolicyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPolicyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthAggregationPolicyListWarningData 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 HealthAggregationPolicyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthAggregationPolicyListWarningData
	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/v1/regionHealthChecks)
// * Global (/compute/docs/reference/rest/v1/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, seeHealth 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. [Output Only] Creation timestamp in3339
	// 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: Output only. 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 withRFC1035.
	// 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. [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"`
	// 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
	// matchtype field.
	//
	// Possible values:
	//   "GRPC"
	//   "GRPC_WITH_TLS"
	//   "HTTP"
	//   "HTTP2"
	//   "HTTPS"
	//   "INVALID"
	//   "SSL"
	//   "TCP"
	Type string `json:"type,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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// 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
	// regionalHealthCheckService, and not more than 1 for
	// globalHealthCheckService.HealthCheck resources must
	// haveportSpecification=USE_SERVING_PORT orportSpecification=USE_FIXED_PORT.
	// For
	// regional HealthCheckService, theHealthCheck must be regional and in the
	// same
	// region. For global HealthCheckService,HealthCheck must be global. Mix of
	// regional and globalHealthChecks is not supported. Multiple
	// regionalHealthChecks must belong to the same region. RegionalHealthChecks
	// must belong to the same region as zones ofNetworkEndpointGroups. For
	// globalHealthCheckService using globalINTERNET_IP_PORT NetworkEndpointGroups,
	// the
	// global HealthChecks must specify sourceRegions,
	// and HealthChecks that specify sourceRegions can
	// only be used with global INTERNET_IP_PORTNetworkEndpointGroups.
	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 reportsUNHEALTHY, then
	// UNHEALTHY is theHealthState of the endpoint. If all health checks
	// reportHEALTHY, the HealthState of the endpoint isHEALTHY.
	//
	// .
	// 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 isHEALTHY.
	//   "NO_AGGREGATION" - An EndpointHealth message is returned for each
	// backend in the health check service.
	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output only] Type of the resource.
	// Alwayscompute#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 regionalHealthCheckService,
	// NEGs must be in
	// zones in the region of the HealthCheckService. For
	// globalHealthCheckServices, 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
	// regionalHealthCheckService,NotificationEndpoint must be regional and in
	// the
	// same region. For global HealthCheckService,NotificationEndpoint must be
	// global.
	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
	// Region: Output only. [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. [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 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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Unique identifier for the resource; defined
	// by the server.
	Id string `json:"id,omitempty"`
	// Items: Output only. A list of HealthCheckService resources.
	Items []*HealthCheckService `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#healthCheckServicesList for lists of
	// HealthCheckServices.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// HealthSource: Represents a health source.
//
// A health source resource specifies the source resources and the
// health
// aggregation policy applied to the source resources to determine
// the
// aggregated health status.
type HealthSource struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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 HealthSource. An up-to-date fingerprint
	// must be provided in order to patch the HealthSource; Otherwise, the
	// request
	// will fail with error 412 conditionNotMet. To see the latest
	// fingerprint, make a get() request to retrieve the
	// HealthSource.
	Fingerprint string `json:"fingerprint,omitempty"`
	// HealthAggregationPolicy: URL to the HealthAggregationPolicy resource. Must
	// be set. Must
	// be regional and in the same region as the HealthSource. Can be
	// mutated.
	HealthAggregationPolicy string `json:"healthAggregationPolicy,omitempty"`
	// Id: Output only. [Output Only] A unique identifier for this resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#healthSource for health sources.
	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 withRFC1035.
	// 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. [Output Only] URL of the region where the health source
	// 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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL with id for
	// the resource.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SourceType: Specifies the type of the HealthSource. The only allowed
	// value
	// is BACKEND_SERVICE. Must be specified when theHealthSource is created, and
	// cannot be mutated.
	//
	// Possible values:
	//   "BACKEND_SERVICE"
	SourceType string `json:"sourceType,omitempty"`
	// Sources: URLs to the source resources. Must be size 1. Must be
	// aBackendService if
	// the sourceType is BACKEND_SERVICE. TheBackendService must have load
	// balancing schemeINTERNAL or INTERNAL_MANAGED and must be regional
	// and in the same region as the HealthSource (cross-region
	// deployment for INTERNAL_MANAGED is not supported). TheBackendService may use
	// only IGs, MIGs, or NEGs of typeGCE_VM_IP or GCE_VM_IP_PORT.
	// TheBackendService may not use haPolicy. Can be
	// mutated.
	Sources []string `json:"sources,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 HealthSource) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthSourceAggregatedList: Contains a list of HealthSourcesScopedList.
type HealthSourceAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthSourcesScopedList resources.
	Items map[string]HealthSourcesScopedList `json:"items,omitempty"`
	// Kind: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *HealthSourceAggregatedListWarning `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 HealthSourceAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourceAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthSourceAggregatedListWarning: [Output Only] Informational warning
// message.
type HealthSourceAggregatedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*HealthSourceAggregatedListWarningData `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 HealthSourceAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourceAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthSourceAggregatedListWarningData 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 HealthSourceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourceAggregatedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthSourceHealth: Response message for RegionHealthSources.GetHealth
type HealthSourceHealth struct {
	// HealthState: Health state of the HealthSource.
	//
	// Possible values:
	//   "HEALTHY"
	//   "UNHEALTHY"
	//   "UNKNOWN"
	HealthState string `json:"healthState,omitempty"`
	// Kind: Output only. [Output Only] Type of resource.
	// Alwayscompute#healthSourceHealth for the health of health sources.
	Kind string `json:"kind,omitempty"`
	// Sources: Health state details of the sources.
	Sources []*HealthSourcesGetHealthResponseSourceInfo `json:"sources,omitempty"`

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

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

type HealthSourceList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of HealthSource resources.
	Items []*HealthSource `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#healthSource for health sources.
	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 thanmaxResults, 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 *HealthSourceListWarning `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 HealthSourceList) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourceList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// HealthSourceListWarning: [Output Only] Informational warning message.
type HealthSourceListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*HealthSourceListWarningData `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 HealthSourceListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourceListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthSourceListWarningData 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 HealthSourceListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourceListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthSourcesGetHealthResponseSourceInfo struct {
	// Backends: Represents an instance group or network endpoint group behind the
	// source
	// backend service. Only used if the sourceType of the regionHealthSource
	// is BACKEND_SERVICE.
	Backends []*HealthSourcesGetHealthResponseSourceInfoBackendInfo `json:"backends,omitempty"`
	// ForwardingRule: Fully qualified URL of the forwarding rule associated with
	// the source
	// resource if it is a L4ILB backend service.
	ForwardingRule string `json:"forwardingRule,omitempty"`
	// Source: Fully qualified URL of the associated source resource. This is
	// always a
	// backend service URL.
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Backends") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Backends") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type HealthSourcesGetHealthResponseSourceInfoBackendInfo struct {
	// EndpointCount: Total number of endpoints when determining the health of
	// the
	// regionHealthSource.
	EndpointCount int64 `json:"endpointCount,omitempty"`
	// Group: Fully qualified URL of an instance group or network endpoint
	// group
	// behind the source backend service.
	Group string `json:"group,omitempty"`
	// HealthyEndpointCount: Number of endpoints considered healthy when
	// determining health of the
	// regionHealthSource.
	HealthyEndpointCount int64 `json:"healthyEndpointCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndpointCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndpointCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// HealthSourcesScopedListWarning: Informational warning which replaces the
// list of
// health sources when the list is empty.
type HealthSourcesScopedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*HealthSourcesScopedListWarningData `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 HealthSourcesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourcesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type HealthSourcesScopedListWarningData 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 HealthSourcesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod HealthSourcesScopedListWarningData
	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 namedPathMatcher 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)
}

// 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 thebackendService.
	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
	// ofprefixMatch.
	//
	// 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 inregexMatch.
	// 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, EXTERNAL_MANAGED
	// (regional scope) or INTERNAL_MANAGED.
	RegexMatch string `json:"regexMatch,omitempty"`
	// SuffixMatch: The value of the header must end with the contents
	// ofsuffixMatch.
	//
	// 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 true,
	// unless a variable is present in headerValue,
	// in which case 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, seeHealth checks
// overview.
type HttpHealthCheck struct {
	// CheckIntervalSec: How often (in seconds) to send a health check. The default
	// value is5 seconds.
	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
	// CreationTimestamp: [Output Only] Creation timestamp inRFC3339
	// 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. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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 is80.
	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 withRFC3986.
	RequestPath string `json:"requestPath,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// TimeoutSec: How long (in seconds) to wait before claiming failure. The
	// default value is5 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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, orregexMatch 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, orregexMatch must be set.
	PresentMatch bool `json:"presentMatch,omitempty"`
	// RegexMatch: The queryParameterMatch matches if the value of the
	// parameter matches the regular expression specified byregexMatch. For
	// more information about regular expression syntax, see Syntax.
	//
	// Only one of presentMatch, exactMatch, orregexMatch must be set.
	//
	// Regular expressions can only be used when the loadBalancingScheme is
	// set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED
	// (regional scope) or INTERNAL_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 inTargetHttpProxys. Setting this
	// true forTargetHttpsProxy 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 withprefixRedirect. 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 withpathRedirect. 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 theHttpRouteAction 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 or504.
	//    - 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 todeadline-exceeded.
	//    - internal: a retry is attempted if the gRPC
	//    status code in the response header is set tointernal.
	//    - resource-exhausted: a retry is attempted if the gRPC
	//    status code in the response header is set toresource-exhausted.
	//    - unavailable: a retry is attempted if the gRPC
	//    status code in the response header is set tounavailable.
	//
	// 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 {
	// CachePolicy: Specifies the cache policy configuration for matched traffic.
	// Available
	// only for Global `EXTERNAL_MANAGED` load balancer schemes. At least
	// one
	// property must be specified. This policy cannot be specified if any
	// target
	// backend has Identity-Aware Proxy enabled.
	CachePolicy *CachePolicy `json:"cachePolicy,omitempty"`
	// 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 maximummaxStreamDuration 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 toINTERNAL_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 oneweightedBackendService 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. "CachePolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CachePolicy") to include in API
	// requests with the JSON null value. By default, fields with empty values 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 BackendServiceorBackendBucket responds
	// with an error.
	//
	// If a policy for an
	// error code is not configured for the RouteRule, a policy for
	// the error code configured inpathMatcher.defaultCustomErrorResponsePolicy is
	// applied. If
	// one is not specified inpathMatcher.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 a404 is encountered, the
	// policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404
	// response is encountered for the requestwww.example.com/current_events/, the
	// pathMatcher's policy
	// takes effect. If however, the request forwww.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 atUrlMap.defaultCustomErrorResponsePolicy takes
	// effect.
	//
	// When
	// used in conjunction withrouteRules.routeAction.retryPolicy, retries
	// take
	// precedence. Only once all retries are exhausted,
	// thecustomErrorResponsePolicy 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
	// afterpathMatchers[].routeRules[].routeAction.weightedBackendService.backendSe
	// rviceWeightAction[].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"`
	// MatchRules: The list of criteria for matching attributes of a request to
	// thisrouteRule. This list has OR semantics: the request matches
	// this routeRule when any of thematchRules 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 interpretsrouteRules.
	// 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.
	//
	//
	// Only one of urlRedirect, service orrouteAction.weightedBackendService can be
	// set.
	//
	//
	// URL maps for classic Application Load Balancers only support
	// the urlRewrite action within a route rule'srouteAction.
	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.
	//
	//
	// Only one of urlRedirect, service orrouteAction.weightedBackendService can be
	// set.
	Service string `json:"service,omitempty"`
	// UrlRedirect: When this rule is matched, the request is redirected to a
	// URL
	// specified by urlRedirect.
	//
	//
	// Only one of urlRedirect, service orrouteAction.weightedBackendService can 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 infullPathMatch 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,regexMatch or path_template_match
	// 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 itsfilterMatchCriteria is set to
	// MATCH_ANY, at least one of thefilterLabels 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 theUrlMap this HttpRouteRuleMatch
	// belongs to.
	//
	// metadataFilters only applies to load balancers that haveloadBalancingScheme
	// set toINTERNAL_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, this field defines a path template pattern
	// that must match
	// the :path header after the query string is removed.
	//
	// A path template pattern can include variables and wildcards.
	// Variables are enclosed in curly braces, for example{variable_name}.
	// Wildcards include * that
	// matches a single path segment, and ** that matches zero or
	// more path segments. The pattern must follow these rules:
	//
	//
	//       - The value must be between 1 and 1024 characters.
	//       - The pattern must start with a leading slash ("/").
	//       - No more than 5 operators (variables or wildcards) may appear in
	//       the pattern.
	//
	// Precisely one ofprefixMatch, fullPathMatch,regexMatch, or pathTemplateMatch
	// 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.
	//
	// The * character inside a prefix match is
	// treated as a literal character, not as a wildcard.
	//
	// Only one of prefixMatch, fullPathMatch,regexMatch or path_template_match can
	// be
	// used within a matchRule.
	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 inregexMatch 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,regexMatch or path_template_match
	// must be
	// specified.
	//
	// Regular expressions can only be used when the loadBalancingScheme is
	// set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED
	// (regional scope) or INTERNAL_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, seeHealth 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 inRFC3339
	// 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: 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 withRFC1035.
	// 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 withRFC3986.
	RequestPath string `json:"requestPath,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Deprecated -- Output only. 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: Output only. 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
	// theguestOSfeatures[].type parameter.
	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
	// Id: Output only. [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 acustomer-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. [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 error412 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"`
	// Name: Name of the resource; provided by the client when the resource is
	// created.
	// The name must be 1-63 characters long, and comply withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *ImageParams `json:"params,omitempty"`
	// RawDisk: The parameters of the raw disk image.
	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: Output only. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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: Thecustomer-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. [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. [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. [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. [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, orREADY.
	//
	// 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"`

	// 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 beTAR. 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 or Artifact Registry path where
	// the raw
	// disk image archive is stored.
	// The following are valid formats:
	//
	//    - https://storage.googleapis.com/bucket_name/image_archive_name
	//    -
	// https://storage.googleapis.com/bucket_name/folder_name/image_archive_name
	//    -
	// projects/project/locations/location/repositories/repo/packages/package/versio
	// ns/version_id
	//    -
	// projects/project/locations/location/repositories/repo/packages/package/versio
	// ns/version_id@dirsum_sha256:hex_value
	//
	//
	//
	// 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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// ImageParams: Additional image params.
type ImageParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// image. Tag keys and values have
	// the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 ImageParams) MarshalJSON() ([]byte, error) {
	type NoMethod ImageParams
	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, readVirtual 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, seeEnabling IP Forwarding.
	CanIpForward               bool                        `json:"canIpForward,omitempty"`
	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
	// CpuPlatform: Output only. [Output Only] The CPU platform used by this
	// instance.
	CpuPlatform string `json:"cpuPlatform,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp inRFC3339
	// 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"`
	// 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. [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
	// acustomer-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. [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. [Output Only] Last start timestamp
	// inRFC3339 text format.
	LastStartTimestamp string `json:"lastStartTimestamp,omitempty"`
	// LastStopTimestamp: Output only. [Output Only] Last stop timestamp inRFC3339
	// text format.
	LastStopTimestamp string `json:"lastStopTimestamp,omitempty"`
	// LastSuspendedTimestamp: Output only. [Output Only] Last suspended timestamp
	// inRFC3339 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 acustom
	// 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 theSpecifications
	// for custom machine types.
	MachineType string `json:"machineType,omitempty"`
	// Metadata: The metadata key/value pairs assigned
	// to this instance. This includes metadata keys that were explicitly
	// defined
	// for the instance.
	Metadata *Metadata `json:"metadata,omitempty"`
	// MinCpuPlatform: Specifies aminimum 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
	// withRFC1035.
	// 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"`
	// 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. [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. [Output Only] Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: Output only. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// Scheduling: Sets the scheduling options for this instance.
	Scheduling *Scheduling `json:"scheduling,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,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. SeeService Accounts
	// for more information.
	ServiceAccounts                 []*ServiceAccount                `json:"serviceAccounts,omitempty"`
	ShieldedInstanceConfig          *ShieldedInstanceConfig          `json:"shieldedInstanceConfig,omitempty"`
	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,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. [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. [Output Only] The status of the instance. One of
	// the
	// following values: PROVISIONING, STAGING,RUNNING, STOPPING,
	// SUSPENDING,SUSPENDED, REPAIRING, andTERMINATED. 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.
	//   "PENDING" - For Flex Start provisioning instance is waiting for available
	// capacity
	// from Dynamic Workload Scheduler (DWS).
	//   "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. [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 withRFC1035.
	// Multiple tags can be specified via the 'tags.items' field.
	Tags                   *Tags                   `json:"tags,omitempty"`
	WorkloadIdentityConfig *WorkloadIdentityConfig `json:"workloadIdentityConfig,omitempty"`
	// Zone: Output only. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. Resources consumed by the instance.
	ConsumptionInfo *InstanceConsumptionInfo `json:"consumptionInfo,omitempty"`
	// Instance: Output only. 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: Output only. The number of virtual CPUs that are available to the
	// instance.
	GuestCpus int64 `json:"guestCpus,omitempty"`
	// LocalSsdGb: Output only. The amount of local SSD storage available to the
	// instance,
	// defined in GiB.
	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
	// MemoryMb: Output only. The amount of physical memory available to the
	// instance,
	// defined in MiB.
	MemoryMb int64 `json:"memoryMb,omitempty"`
	// MinNodeCpus: Output only. 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)
}

// InstanceFlexibilityPolicy: A flexible specification of machine types for
// instances to create.
type InstanceFlexibilityPolicy struct {
	// InstanceSelections: Specification of alternative, flexible instance
	// subsets.
	// One of them will be selected to create the instances
	// based on various criteria, like:
	// - ranks,
	// - location policy,
	// - current capacity,
	// - available reservations (you can specify affinity in
	// InstanceProperties),
	// - SWAN/GOOSE limitations.
	// Key is an arbitrary, unique RFC1035 string that identifies the
	// instance
	// selection.
	InstanceSelections map[string]InstanceFlexibilityPolicyInstanceSelection `json:"instanceSelections,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceSelections") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceSelections") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InstanceFlexibilityPolicyInstanceSelection: Specification of machine type to
// use. Every position inside this message
// is an alternative.
// The count specified in the shape flexibility must not exceed the number
// of entries in per_instance_properties or the capacity of the
// name_pattern, if used.
type InstanceFlexibilityPolicyInstanceSelection struct {
	// Disks: Disks to be attached to the instances created from in this
	// selection.
	// They override the disks specified in the instance properties.
	Disks []*AttachedDisk `json:"disks,omitempty"`
	// MachineTypes: Alternative machine types to use for instances that are
	// created from
	// these properties. This field only accepts a machine type names, for
	// example `n2-standard-4` and not URLs or partial URLs.
	MachineTypes []string `json:"machineTypes,omitempty"`
	// Rank: Rank when prioritizing the shape flexibilities.
	// The instance selections with rank are considered
	// first, in the ascending order of the rank.
	// If not set, defaults to 0.
	Rank int64 `json:"rank,omitempty,string"`
	// 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 InstanceFlexibilityPolicyInstanceSelection) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceFlexibilityPolicyInstanceSelection
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroup: Represents an Instance Group resource.
//
// Instance Groups can be used to configure a target
// forload
// balancing.
//
// Instance groups can either be managed or unmanaged.
//
// To create
// managed instance groups, use the instanceGroupManager
// orregionInstanceGroupManager resource instead.
//
// Use zonal unmanaged instance groups if you need to applyload
// 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, readInstance
// groups.
type InstanceGroup struct {
	// CreationTimestamp: Output only. [Output Only] The creation timestamp for
	// this instance group inRFC3339
	// 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. [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. [Output Only] A unique identifier for this instance group,
	// generated
	// by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] The resource type, which is
	// alwayscompute#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 withRFC1035.
	Name string `json:"name,omitempty"`
	// NamedPorts: Optional. 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. [Output Only] The URL of theregion
	// where the instance group is located (for regional resources).
	Region string `json:"region,omitempty"`
	// SelfLink: Output only. [Output Only] The URL for this instance group. The
	// server generates
	// this URL.
	SelfLink string `json:"selfLink,omitempty"`
	// Size: Output only. [Output Only] The total number of instances in the
	// instance group.
	Size int64 `json:"size,omitempty"`
	// Subnetwork: Output only. [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. [Output Only] The URL of thezone
	// 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. [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. [Output Only] The resource type, which is
	// alwayscompute#instanceGroupAggregatedList for aggregated lists of
	// instance groups.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [Output Only] The resource type, which is
	// alwayscompute#instanceGroupList for instance group lists.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, readInstance groups.
//
// For zonal Managed Instance Group, use the
// instanceGroupManagers
// resource.
//
// For regional Managed Instance Group, use theregionInstanceGroupManagers
// 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 inRFC3339
	// 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"`
	// 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 error412 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,
	// runapplyUpdatesToInstances, or set the group'supdatePolicy.type to
	// PROACTIVE.
	InstanceTemplate string `json:"instanceTemplate,omitempty"`
	// Kind: Output only. The resource type, which is
	// alwayscompute#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'slistManagedInstances 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 withRFC1035.
	Name string `json:"name,omitempty"`
	// NamedPorts: [Output Only] Named ports configured on the Instance Groups
	// complementary
	// to this Instance Group Manager.
	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
	// Region: Output only. [Output Only] The URL of theregion
	// 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"`
	// 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
	// theinstanceGroup 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"`
	// TargetSizePolicy: The policy that specifies how the MIG creates its VMs to
	// achieve the target
	// size.
	TargetSizePolicy *InstanceGroupManagerTargetSizePolicy `json:"targetSizePolicy,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 aname. Every version can
	// appear at most once per instance
	// group. This field overrides the top-level instanceTemplate
	// field. Read more about therelationships
	// between these fields. Exactly one version must leave thetargetSize field
	// unset. That version will be applied to all
	// remaining instances. For more information, read aboutcanary
	// updates.
	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
	// Zone: Output only. The URL of azone
	// 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"`
	// 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"`
	// 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
	// alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 theinstanceGroupManagers.patch
	// orregionInstanceGroupManagers.patch. After settingallInstancesConfig 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 {
	// 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"`
	// 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 InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerAutoHealingPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerInstanceFlexibilityPolicy struct {
	// InstanceSelections: Named instance selections configuring properties that
	// the group will use
	// when creating new VMs.
	InstanceSelections map[string]InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection `json:"instanceSelections,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InstanceSelections") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceSelections") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values 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 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:
	//   "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"`
	// 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): MIG uses the same action
	//    configured for instanceLifecyclePolicy.defaultActionOnFailure field.
	//    - REPAIR: MIG automatically repairs an unhealthy VM by
	//    recreating it.
	//    - DO_NOTHING: MIG doesn't repair an unhealthy VM.
	//    For more information, see
	//    About repairing VMs in a MIG.
	//
	// Possible values:
	//   "DEFAULT_ACTION" - (Default) MIG uses the same action configured
	// for
	// instanceLifecyclePolicy.defaultActionOnFailure field.
	//   "DO_NOTHING" - MIG doesn't repair an unhealthy VM.
	//   "REPAIR" - MIG automatically repairs an unhealthy VM 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)
}

// 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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// 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 {
	// CreationTimestamp: Output only. The creation timestamp for this resize
	// request inRFC3339
	// 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
	// alwayscompute#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 withRFC1035.
	Name string `json:"name,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. This field cannot be
	// used
	// together with 'instances'.
	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.
	//   "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.
	//   "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. "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 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 stored in the
	// "error" field only.
	LastAttempt *InstanceGroupManagerResizeRequestStatusLastAttempt `json:"lastAttempt,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: Output only. 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: Output only. 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.
	// Alwayscompute#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 thenextPageToken as
	// a value for the query parameterpageToken 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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"`
	// AppliedAcceleratorTopologies: Output only. The accelerator topology applied
	// to this MIG.
	// Currently only one accelerator topology is supported.
	AppliedAcceleratorTopologies []*InstanceGroupManagerStatusAcceleratorTopology `json:"appliedAcceleratorTopologies,omitempty"`
	// Autoscaler: Output only. The URL of theAutoscaler
	// that targets this instance group manager.
	Autoscaler string `json:"autoscaler,omitempty"`
	// BulkInstanceOperation: Output only. The status of bulk instance operation.
	BulkInstanceOperation *InstanceGroupManagerStatusBulkInstanceOperation `json:"bulkInstanceOperation,omitempty"`
	// CurrentInstanceStatuses: Output only. The list of instance statuses and the
	// number of instances
	// in this managed instance group that have the status. Currently only
	// shown
	// for TPU MIGs
	CurrentInstanceStatuses *InstanceGroupManagerStatusInstanceStatusSummary `json:"currentInstanceStatuses,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 InstanceGroupManagerStatusAcceleratorTopology struct {
	// AcceleratorTopology: Output only. Topology in the format of: "16x16",
	// "4x4x4", etc.
	// The value is the same as configured in the WorkloadPolicy.
	AcceleratorTopology string `json:"acceleratorTopology,omitempty"`
	// State: Output only. The state of the accelerator topology.
	//
	// Possible values:
	//   "ACTIVATING" - The accelerator topology is being activated.
	//   "ACTIVE" - The accelerator topology is active.
	//   "DEACTIVATING" - The accelerator topology is being deactivated.
	//   "FAILED" - The accelerator topology failed.
	//   "INCOMPLETE" - The configuration is incomplete and the accelerator
	// topology cannot
	// be activated due to insufficient number of running VMs.
	//   "REACTIVATING" - The accelerator topology is being reactivated.
	State string `json:"state,omitempty"`
	// StateDetails: Output only. The result of the latest accelerator topology
	// state
	// check.
	StateDetails *InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails `json:"stateDetails,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorTopology") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorTopology") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails struct {
	// Error: Output only. Encountered errors.
	Error *InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError `json:"error,omitempty"`
	// Timestamp: Output only. Timestamp is shown only if there is an error. The
	// field
	// has // 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 InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsE
// rror: Output only. Encountered errors.
type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError struct {
	// Errors: [Output Only] The array of errors encountered while processing
	// this
	// operation.
	Errors []*InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors `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 InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors 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 []*InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails `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 InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails 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 InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails
	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)
}

// InstanceGroupManagerStatusBulkInstanceOperation: Bulk instance operation is
// the creation of VMs in a MIG when the
// targetSizePolicy.mode is set to BULK.
type InstanceGroupManagerStatusBulkInstanceOperation struct {
	// InProgress: Output only. Informs whether bulk instance operation is in
	// progress.
	InProgress bool `json:"inProgress,omitempty"`
	// LastProgressCheck: Output only. Information from the last progress check of
	// bulk instance
	// operation.
	LastProgressCheck *InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck `json:"lastProgressCheck,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InProgress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InProgress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck struct {
	// Error: Output only. Errors encountered during bulk instance operation.
	Error *InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError `json:"error,omitempty"`
	// Timestamp: Output only. Timestamp of the last progress check of bulk
	// instance
	// operation. Timestamp 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 InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError:
// Output only. Errors encountered during bulk instance operation.
type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError struct {
	// Errors: [Output Only] The array of errors encountered while processing
	// this
	// operation.
	Errors []*InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors `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 InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors 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 []*InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails `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 InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails 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 InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InstanceGroupManagerStatusInstanceStatusSummary: The list of instance
// statuses and the number of instances in this managed
// instance group that have the status. For more information about how
// to
// interpret each status check the instance lifecycle documentation.
// Currently only shown for TPU MIGs.
type InstanceGroupManagerStatusInstanceStatusSummary struct {
	// Deprovisioning: Output only. The number of instances in the managed instance
	// group
	// that have DEPROVISIONING status.
	Deprovisioning int64 `json:"deprovisioning,omitempty"`
	// NonExistent: Output only. The number of instances that have not been created
	// yet or
	// have been deleted. Includes only instances that would be shown in
	// the
	// listManagedInstances method and not all instances that have been
	// deleted in the lifetime of the MIG.
	// Does not include FlexStart instances that are waiting for the
	// resources
	// availability, they are considered as 'pending'.
	NonExistent int64 `json:"nonExistent,omitempty"`
	// Pending: Output only. The number of instances in the managed instance
	// group
	// that have PENDING status, that is FlexStart instances that are waiting
	// for resources. Instances that do not exist because of the other reasons
	// are counted as 'non_existent'.
	Pending int64 `json:"pending,omitempty"`
	// PendingStop: Output only. The number of instances in the managed instance
	// group
	// that have PENDING_STOP status.
	PendingStop int64 `json:"pendingStop,omitempty"`
	// Provisioning: Output only. The number of instances in the managed instance
	// group
	// that have PROVISIONING status.
	Provisioning int64 `json:"provisioning,omitempty"`
	// Repairing: Output only. The number of instances in the managed instance
	// group
	// that have REPAIRING status.
	Repairing int64 `json:"repairing,omitempty"`
	// Running: Output only. The number of instances in the managed instance
	// group
	// that have RUNNING status.
	Running int64 `json:"running,omitempty"`
	// Staging: Output only. The number of instances in the managed instance
	// group
	// that have STAGING status.
	Staging int64 `json:"staging,omitempty"`
	// Stopped: Output only. The number of instances in the managed instance
	// group
	// that have STOPPED status.
	Stopped int64 `json:"stopped,omitempty"`
	// Stopping: Output only. The number of instances in the managed instance
	// group
	// that have STOPPING status.
	Stopping int64 `json:"stopping,omitempty"`
	// Suspended: Output only. The number of instances in the managed instance
	// group
	// that have SUSPENDED status.
	Suspended int64 `json:"suspended,omitempty"`
	// Suspending: Output only. The number of instances in the managed instance
	// group
	// that have SUSPENDING status.
	Suspending int64 `json:"suspending,omitempty"`
	// Terminated: Output only. The number of instances in the managed instance
	// group
	// that have TERMINATED status.
	Terminated int64 `json:"terminated,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Deprovisioning") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Deprovisioning") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstanceGroupManagerStatusInstanceStatusSummary) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerStatusInstanceStatusSummary
	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"`
	// 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: Output only. 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 byversion 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 InstanceGroupManagerTargetSizePolicy struct {
	// Mode: The mode of target size policy based on which the MIG creates its
	// VMs
	// individually or all at once.
	//
	// Possible values:
	//   "BULK" - The mode in which the MIG creates VMs all at once. In this mode,
	// if the
	// MIG is unable to create even one VM, the MIG waits until all VMs can
	// be
	// created at the same time.
	//   "INDIVIDUAL" - The mode in which the MIG creates VMs individually. In this
	// mode, if
	// the MIG is unable to create a VM, the MIG will continue to create the
	// other VMs in the group. This is the default mode.
	//   "UNSPECIFIED_MODE" - If mode is unspecified, MIG will behave as in the
	// default `INDIVIDUAL`
	// mode.
	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 InstanceGroupManagerTargetSizePolicy) MarshalJSON() ([]byte, error) {
	type NoMethod InstanceGroupManagerTargetSizePolicy
	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
	// specifiedtargetSize 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 ormaxUnavailable 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 formaxUnavailable is a fixed
	// value equal to the number of zones
	// in which the managed instance group operates.
	//
	// At least one of either maxSurge ormaxUnavailable must be greater than 0.
	// Learn more about maxUnavailable.
	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,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
	// toREFRESH. 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
	// orOPPORTUNISTIC 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, runapplyUpdatesToInstances, or set the
	// group'supdatePolicy.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"`
	// TargetSize: Specifies the intended number of instances to be created from
	// theinstanceTemplate. 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. ReadStarting
	// 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
	// aszones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,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 {
	// 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. "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 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. [Output Only] The list of errors of the managed instance
	// group.
	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] The list of instances in the
	// managed instance group.
	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] The list of PerInstanceConfig.
	Items []*PerInstanceConfig `json:"items,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 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,
	// runapplyUpdatesToInstances, or set the group'supdatePolicy.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
	// theinstanceGroupManagers.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. [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. [Output Only] The resource type, which is
	// alwayscompute#instanceGroupsListInstances for the list of instances
	// in the specified instance group.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] The list ofinstance
	// groups that are contained in this scope.
	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	// theinstanceGroups.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 error412
	// 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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Contents of the error.
	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
	// InstanceActionDetails: Output only. [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. [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. [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_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.
	//   "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. [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. [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. [Output Only] Error code.
	Code string `json:"code,omitempty"`
	// Message: Output only. [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 {
	// RequestValidForDuration: Relative deadline for waiting for capacity.
	// Relevant only for
	// Instances.Insert API.
	RequestValidForDuration *Duration `json:"requestValidForDuration,omitempty"`
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// instance. Tag keys and values
	// have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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. "RequestValidForDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RequestValidForDuration") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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 tofalse. See theEnable 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"`
	// 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. SeeProject 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 asminCpuPlatform: "Intel Haswell"
	// orminCpuPlatform: "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"`
	// 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: Input only. Resource manager tags to be bound to the
	// instance. Tag keys and values
	// have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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"`
	// 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"`
	// ShieldedInstanceConfig: Note that for MachineImage, this is not supported
	// yet.
	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,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"`
	WorkloadIdentityConfig *WorkloadIdentityConfig `json:"workloadIdentityConfig,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 {
	// 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. [Output Only] Type of the resource.
	// Alwayscompute#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. [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. "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 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. [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/v1/instanceTemplates)
// * Regional (/compute/docs/reference/rest/v1/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, readInstance Templates.
type InstanceTemplate struct {
	// CreationTimestamp: Output only. [Output Only] The creation timestamp for
	// this instance template inRFC3339
	// 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. [Output Only] A unique identifier for this instance
	// template. The server
	// defines this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] The resource type, which is
	// alwayscompute#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 withRFC1035.
	// 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. [Output Only] URL of the region where the instance
	// template resides. Only
	// applicable for regional resources.
	Region string `json:"region,omitempty"`
	// SelfLink: Output only. [Output Only] The URL for this instance template. The
	// server defines this
	// URL.
	SelfLink string `json:"selfLink,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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] The resource type, which is
	// alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] The URL of the instance.
	Instance string `json:"instance,omitempty"`
	// NamedPorts: Output only. [Output Only] The named ports that belong to this
	// instance group.
	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
	// Status: Output only. [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.
	//   "PENDING" - For Flex Start provisioning instance is waiting for available
	// capacity
	// from Dynamic Workload Scheduler (DWS).
	//   "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: [Output Only] Effective firewalls from firewall policies.
	FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
	// Firewalls: Effective firewalls on the instance.
	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 InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesGetEffectiveFirewallsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
	// DisplayName: Output only. [Output Only] Deprecated, please use short name
	// instead. The display name
	// of the firewall policy.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Output only. [Output Only] The name of the firewall policy.
	Name string `json:"name,omitempty"`
	// PacketMirroringRules: Output only. [Output Only] The packet mirroring rules
	// that apply to the instance.
	PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"`
	// Priority: Output only. [Output only] Priority of firewall policy
	// association. Not applicable for
	// type=HIERARCHY.
	Priority int64 `json:"priority,omitempty"`
	// Rules: [Output Only] The rules that apply to the instance. Only rules
	// that
	// target the specific VM instance are returned if target service accounts
	// or target secure tags are specified in the rules.
	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
	// ShortName: Output only. [Output Only] The short name of the firewall policy.
	ShortName string `json:"shortName,omitempty"`
	// Type: Output only. [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)
}

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 InstancesReportHostAsFaultyRequest struct {
	// DisruptionSchedule: The disruption schedule for the VM. Required field, only
	// allows IMMEDIATE.
	//
	// Possible values:
	//   "DISRUPTION_SCHEDULE_UNSPECIFIED" - Not used. Required as per aip/126.
	//   "FUTURE" - Delay disruption for caller control. Will be default soon.
	//   "IMMEDIATE" - Default value. Disrupt the VM immediately.
	DisruptionSchedule string                                           `json:"disruptionSchedule,omitempty"`
	FaultReasons       []*InstancesReportHostAsFaultyRequestFaultReason `json:"faultReasons,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisruptionSchedule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisruptionSchedule") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type InstancesReportHostAsFaultyRequestFaultReason struct {
	// Possible values:
	//   "BEHAVIOR_UNSPECIFIED" - Public reportable behaviors
	//   "CHIP_ERROR" - Any GPU or TPU errors or faults where the accelerator
	// becomes unusable
	//   "PERFORMANCE"
	//   "SILENT_DATA_CORRUPTION"
	//   "UNRECOVERABLE_GPU_ERROR" - Unrecoverable GPU error identified by an XID
	Behavior    string `json:"behavior,omitempty"`
	Description string `json:"description,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Behavior") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Behavior") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InstancesReportHostAsFaultyRequestFaultReason) MarshalJSON() ([]byte, error) {
	type NoMethod InstancesReportHostAsFaultyRequestFaultReason
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	// acustomer-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"`
	// 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. [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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] Size of the source disk, specified in
	// GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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 error412 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 withRFC1035.
	// 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"`
	// Params: Input only. Additional params passed with the request, but not
	// persisted
	// as part of resource payload.
	Params *InstantSnapshotParams `json:"params,omitempty"`
	// Region: Output only. [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. [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. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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. [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. [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. [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. [Output Only] The status of the instantSnapshot. This
	// can beCREATING, DELETING, FAILED, orREADY.
	//
	// 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. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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. [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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource's resource id.
	SelfLinkWithId         string `json:"selfLinkWithId,omitempty"`
	SourceConsistencyGroup string `json:"sourceConsistencyGroup,omitempty"`
	// Status: Output only. [Output Only]
	//
	// Possible values:
	//   "CREATING"
	//   "DELETING"
	//   "FAILED"
	//   "INVALID"
	//   "READY"
	//   "UNKNOWN"
	Status string `json:"status,omitempty"`
	// Zone: Output only. [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 InstantSnapshotGroupParameters struct {
	// SourceInstantSnapshotGroup: The source instant snapshot group used to create
	// disks. 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/instantSnapshotGroups/instantSnapshotGroup
	//      -
	// projects/project/zones/zone/instantSnapshotGroups/instantSnapshotGroup
	//      - zones/zone/instantSnapshotGroups/instantSnapshotGroup
	SourceInstantSnapshotGroup string `json:"sourceInstantSnapshotGroup,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SourceInstantSnapshotGroup")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SourceInstantSnapshotGroup") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type InstantSnapshotGroupResourceStatus struct {
	// ConsistencyMembershipResolutionTime: Output only. [Output Only]
	ConsistencyMembershipResolutionTime string `json:"consistencyMembershipResolutionTime,omitempty"`
	// SourceInfo: Output only. [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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// InstantSnapshotParams: Additional instant snapshot params.
type InstantSnapshotParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// instant snapshot. Tag keys and
	// values have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 InstantSnapshotParams) MarshalJSON() ([]byte, error) {
	type NoMethod InstantSnapshotParams
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 awareness feature on this
	// Cloud
	// 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 information for application
	// awareness on this Cloud
	// Interconnect.
	ApplicationAwareInterconnect *InterconnectApplicationAwareInterconnect `json:"applicationAwareInterconnect,omitempty"`
	// AvailableFeatures: [Output only] List of features available for this
	// Interconnect connection,
	// which can take one of the following values:
	//
	//    - IF_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. Any
	//    attempt to enable MACsec will fail.
	//    - IF_CROSS_SITE_NETWORK: If present, then the Interconnect connection is
	//    provisioned exclusively for Cross-Site Networking. Any attempt to
	// configure
	//    VLAN attachments will fail. If not present, then the Interconnect
	//    connection is not provisioned for Cross-Site Networking. Any attempt to
	// use
	//    it for Cross-Site Networking will fail.
	//
	// Possible values:
	//   "IF_CROSS_SITE_NETWORK" - Cross-Site Networking
	//   "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding
	//   "IF_MACSEC" - Media Access Control security (MACsec)
	AvailableFeatures []string `json:"availableFeatures,omitempty"`
	// CircuitInfos: Output only. [Output Only] A list of CircuitInfo objects, that
	// describe the individual
	// circuits in this LAG.
	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] A list of outages expected for
	// this Interconnect.
	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
	// GoogleIpAddress: Output only. [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. [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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InterconnectAttachments: Output only. [Output Only] A list of the URLs of
	// all InterconnectAttachments configured
	// to use  this Interconnect.
	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
	// InterconnectGroups: Output only. [Output Only] URLs of InterconnectGroups
	// that include this Interconnect.
	// Order is arbitrary and items are unique.
	InterconnectGroups []string `json:"interconnectGroups,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. [Output Only] Type of the resource.
	// Alwayscompute#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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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.
	//    - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 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];
	//   "LINK_TYPE_ETHERNET_400G_LR4" - 400G Ethernet, LR4 Optics.
	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 withRFC1035.
	// 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. [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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *InterconnectParams `json:"params,omitempty"`
	// PeerIpAddress: Output only. [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. [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. This parameter can be provided only with
	// Interconnect INSERT. It
	// isn't valid for Interconnect PATCH. List of features requested for
	// this
	// Interconnect connection, which can take one of the following values:
	//
	//    - IF_MACSEC: If specified, then the connection is created on MACsec
	//    capable hardware ports. If not specified, non-MACsec capable ports will
	//    also be considered.
	//    - IF_CROSS_SITE_NETWORK: If specified, then the connection is created
	//    exclusively for Cross-Site Networking. The connection can not be used
	// for
	//    Cross-Site Networking unless this feature is specified.
	//
	// Possible values:
	//   "IF_CROSS_SITE_NETWORK" - Cross-Site Networking
	//   "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding
	//   "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. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// State: Output only. [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"`
	// Subzone: To be deprecated.
	//
	// Possible values:
	//   "SUBZONE_A" - Subzone A.
	//   "SUBZONE_B" - Subzone B.
	Subzone string `json:"subzone,omitempty"`
	// WireGroups: Output only. [Output Only] A list of the URLs of all
	// CrossSiteNetwork WireGroups
	// configured to use this Interconnect. The Interconnect cannot be deleted
	// if
	// this list is non-empty.
	WireGroups []string `json:"wireGroups,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
// application awareness on this Cloud
// Interconnect.
type InterconnectApplicationAwareInterconnect struct {
	BandwidthPercentagePolicy *InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy `json:"bandwidthPercentagePolicy,omitempty"`
	// ProfileDescription: Description for the application awareness profile on
	// this Cloud
	// Interconnect.
	ProfileDescription string `json:"profileDescription,omitempty"`
	// ShapeAveragePercentages: Optional field to specify a list of shape average
	// percentages to be
	// applied in conjunction with StrictPriorityPolicy
	// or
	// BandwidthPercentagePolicy.
	ShapeAveragePercentages []*InterconnectApplicationAwareInterconnectBandwidthPercentage `json:"shapeAveragePercentages,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"`
	// AttachmentGroup: Output only. [Output Only] URL of the AttachmentGroup that
	// includes this Attachment.
	AttachmentGroup string `json:"attachmentGroup,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
	//    - BPS_100G: 100 Gbit/s
	//    - BPS_400G: 400 Gbit/s
	//
	// Possible values:
	//   "BPS_100G" - 100 Gbit/s
	//   "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_400G" - 400 Gbit/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"`
	// CandidateCloudRouterIpAddress: Single IPv4 address + prefix length to be
	// configured on the cloud router
	// interface for this interconnect attachment.
	//
	//    - Both candidate_cloud_router_ip_address and
	//    candidate_customer_router_ip_address fields must be set or both must be
	//    unset.
	//    - Prefix length of both candidate_cloud_router_ip_address and
	//    candidate_customer_router_ip_address must be the same.
	//    - Max prefix length is 31.
	CandidateCloudRouterIpAddress string `json:"candidateCloudRouterIpAddress,omitempty"`
	// CandidateCloudRouterIpv6Address: Single IPv6 address + prefix length to be
	// configured on the cloud router
	// interface for this interconnect attachment.
	//
	//    - Both candidate_cloud_router_ipv6_address and
	//    candidate_customer_router_ipv6_address fields must be set or both must
	// be
	//    unset.
	//    - Prefix length of both candidate_cloud_router_ipv6_address and
	//    candidate_customer_router_ipv6_address must be the same.
	//    - Max prefix length is 126.
	CandidateCloudRouterIpv6Address string `json:"candidateCloudRouterIpv6Address,omitempty"`
	// CandidateCustomerRouterIpAddress: Single IPv4 address + prefix length to be
	// configured on the customer router
	// interface for this interconnect attachment.
	CandidateCustomerRouterIpAddress string `json:"candidateCustomerRouterIpAddress,omitempty"`
	// CandidateCustomerRouterIpv6Address: Single IPv6 address + prefix length to
	// be configured on the customer router
	// interface for this interconnect attachment.
	CandidateCustomerRouterIpv6Address string `json:"candidateCustomerRouterIpv6Address,omitempty"`
	// CandidateIpv6Subnets: This field is not available.
	CandidateIpv6Subnets []string `json:"candidateIpv6Subnets,omitempty"`
	// CandidateSubnets: Input only. 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. [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. [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. [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. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CustomerRouterIpAddress: Output only. [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. [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. [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: Input only. 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. [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. [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. [Output Only] Type of the resource.
	// Alwayscompute#interconnectAttachment for interconnect attachments.
	Kind string `json:"kind,omitempty"`
	// L2Forwarding: L2 Interconnect Attachment related config. This field is
	// required if the
	// type is L2_DEDICATED.
	//
	// The configuration specifies how VLAN tags (like dot1q, qinq, or
	// dot1ad)
	// within L2 packets are mapped to the destination appliances IP addresses.
	// The packet is then encapsulated with the appliance IP address and sent
	// to
	// the edge appliance.
	L2Forwarding *InterconnectAttachmentL2Forwarding `json:"l2Forwarding,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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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.
	// Valid values are 1440, 1460, 1500, and 8896. If not specified,
	// the value will default to 1440.
	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 withRFC1035.
	// 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. [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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *InterconnectAttachmentParams `json:"params,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. [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. [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. [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. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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. [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: Input only. 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.
	//
	// - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
	//
	// Possible values:
	//   "DEDICATED" - Attachment to a dedicated interconnect.
	//   "L2_DEDICATED" - Attachment to a dedicated interconnect, forwarding L2
	// packets.
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [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)
}

// InterconnectAttachmentGroup: An interconnect attachment group resource
// allows customers to create,
// analyze, and expand highly available deployments.
type InterconnectAttachmentGroup struct {
	// Attachments: Attachments in the AttachmentGroup. Keys are arbitrary
	// user-specified
	// strings. Users are encouraged, but not required, to use their
	// preferred
	// format for resource links as keys.
	// Note that there are add-members and remove-members methods in gcloud.
	// The size of this map is limited by an "Attachments per group" quota.
	Attachments map[string]InterconnectAttachmentGroupAttachment `json:"attachments,omitempty"`
	Configured  *InterconnectAttachmentGroupConfigured           `json:"configured,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// Etag: Opaque system-generated token that uniquely identifies the
	// configuration.
	// If provided when patching a configuration in update mode, the provided
	// token must match the current token or the update is rejected. This
	// provides
	// a reliable means of doing read-modify-write (optimistic locking)
	// as
	// described byAIP 154.
	Etag string `json:"etag,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource type.
	// The server
	// generates this identifier.
	Id     uint64                             `json:"id,omitempty,string"`
	Intent *InterconnectAttachmentGroupIntent `json:"intent,omitempty"`
	// InterconnectGroup: The URL of an InterconnectGroup that groups these
	// Attachments'
	// Interconnects. Customers do not need to set this unless directed by
	// Google Support.
	InterconnectGroup string `json:"interconnectGroup,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Always
	// compute#interconnectAttachmentGroup.
	Kind             string                                       `json:"kind,omitempty"`
	LogicalStructure *InterconnectAttachmentGroupLogicalStructure `json:"logicalStructure,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 withRFC1035.
	// 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. [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. "Attachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attachments") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// InterconnectAttachmentGroupConfigured: [Output Only] The redundancy this
// group is configured to support. The way a
// user queries what SLA their Attachment gets is by looking at this field
// of
// the Attachment's AttachmentGroup.
type InterconnectAttachmentGroupConfigured struct {
	AvailabilitySla *InterconnectAttachmentGroupConfiguredAvailabilitySLA `json:"availabilitySla,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailabilitySla") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailabilitySla") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupConfiguredAvailabilitySLA: [Output Only] Which
// SLA this group is configured to support, and why this
// group does or does not meet that SLA's requirements.
type InterconnectAttachmentGroupConfiguredAvailabilitySLA struct {
	// Possible values:
	//   "EFFECTIVE_SLA_UNSPECIFIED"
	//   "NO_SLA"
	//   "PRODUCTION_CRITICAL"
	//   "PRODUCTION_NON_CRITICAL"
	EffectiveSla        string                                                                     `json:"effectiveSla,omitempty"`
	IntendedSlaBlockers []*InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers `json:"intendedSlaBlockers,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EffectiveSla") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EffectiveSla") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers:
// [Output Only] Reasons why configuration.availabilitySLA.sla differs
// from
// intent.availabilitySLA. This list is empty if and only if those are
// the
// same.
type InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers struct {
	// Attachments: Output only. [Output Only] URLs of any particular Attachments
	// to explain this
	// blocker in more detail.
	Attachments []string `json:"attachments,omitempty"`
	// Possible values:
	//   "BLOCKER_TYPE_UNSPECIFIED"
	//   "INCOMPATIBLE_METROS"
	//   "INCOMPATIBLE_REGIONS"
	//   "MISSING_GLOBAL_ROUTING"
	//   "NO_ATTACHMENTS"
	//   "NO_ATTACHMENTS_IN_METRO_AND_ZONE"
	//   "OTHER"
	BlockerType string `json:"blockerType,omitempty"`
	// DocumentationLink: Output only. [Output Only] The url of Google Cloud public
	// documentation explaining
	// this requirement. This is set for every type of requirement.
	DocumentationLink string `json:"documentationLink,omitempty"`
	// Explanation: Output only. [Output Only] A human-readable explanation of this
	// requirement and
	// why it's not met. This is set for every type of requirement.
	Explanation string `json:"explanation,omitempty"`
	// Metros: Output only. [Output Only] Metros used to explain this blocker in
	// more detail.
	// These are three-letter lowercase strings like "iad". This will be set
	// for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
	// not apply to others.
	Metros []string `json:"metros,omitempty"`
	// Regions: Output only. [Output Only] Regions used to explain this blocker in
	// more
	// detail. These are region names formatted like "us-central1". This
	// will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
	// not apply to others.
	Regions []string `json:"regions,omitempty"`
	// Zones: Output only. [Output Only] Zones used to explain this blocker in more
	// detail.
	// Format is "zone1" and/or "zone2". This will be set for some blockers
	// (like  MISSING_ZONE) but does not apply to others.
	Zones []string `json:"zones,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attachments") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupIntent: The user's intent for this
// AttachmentGroup. This is the only required field
// besides the name that must be specified on group creation.
type InterconnectAttachmentGroupIntent struct {
	// Possible values:
	//   "AVAILABILITY_SLA_UNSPECIFIED"
	//   "NO_SLA"
	//   "PRODUCTION_CRITICAL"
	//   "PRODUCTION_NON_CRITICAL"
	AvailabilitySla string `json:"availabilitySla,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailabilitySla") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailabilitySla") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupLogicalStructure: [Output Only] An analysis of
// the logical layout of Attachments in this
// group. Every Attachment in the group is shown once in this structure.
type InterconnectAttachmentGroupLogicalStructure struct {
	Regions []*InterconnectAttachmentGroupLogicalStructureRegion `json:"regions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Regions") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Regions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupLogicalStructureRegion: [Output Only] The regions
// Attachments in this group are in.
type InterconnectAttachmentGroupLogicalStructureRegion struct {
	Metros []*InterconnectAttachmentGroupLogicalStructureRegionMetro `json:"metros,omitempty"`
	// Region: Output only. [Output Only] The name of a region, like "us-central1".
	Region string `json:"region,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Metros") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Metros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupLogicalStructureRegionMetro: [Output Only] The
// metros of Attachments in this group in this region.
type InterconnectAttachmentGroupLogicalStructureRegionMetro struct {
	Facilities []*InterconnectAttachmentGroupLogicalStructureRegionMetroFacility `json:"facilities,omitempty"`
	// Metro: Output only. [Output Only] The name of the metro, as a three-letter
	// lowercase
	// string like "iad". This is the first component of the location of
	// an
	// Interconnect.
	Metro string `json:"metro,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Facilities") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Facilities") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupLogicalStructureRegionMetroFacility: [Output
// Only] The facilities used for this group's Attachments'
// Interconnects.
type InterconnectAttachmentGroupLogicalStructureRegionMetroFacility struct {
	// Facility: Output only. [Output Only] The name of a facility, like
	// "iad-1234".
	Facility string                                                                `json:"facility,omitempty"`
	Zones    []*InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone `json:"zones,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Facility") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Facility") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone: [Output
// Only] The zones that Attachments in this group are present
// in, in the given facilities.  This is inherited from their
// Interconnects.
type InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone struct {
	// Attachments: Output only. [Output Only] URLs of Attachments in the given
	// zone, to the given
	// region, on Interconnects in the given facility and metro. Every
	// Attachment in the AG has such an entry.
	Attachments []string `json:"attachments,omitempty"`
	// Zone: Output only. [Output Only] The name of a zone, either "zone1" or
	// "zone2".
	Zone string `json:"zone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attachments") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupsGetOperationalStatusResponse: Response for the
// InterconnectAttachmentGroupsGetOperationalStatusResponse.
type InterconnectAttachmentGroupsGetOperationalStatusResponse struct {
	Etag   string                                         `json:"etag,omitempty"`
	Result *InterconnectAttachmentGroupsOperationalStatus `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 InterconnectAttachmentGroupsGetOperationalStatusResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentGroupsGetOperationalStatusResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentGroupsListResponse 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 InterconnectAttachmentGroup resources.
	Items []*InterconnectAttachmentGroup `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 thanmaxResults, 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. [Output Only] Unreachable
	// resources.
	// end_interface:
	// MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InterconnectAttachmentGroupsListResponseWarning `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 InterconnectAttachmentGroupsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentGroupsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentGroupsListResponseWarning: [Output Only] Informational
// warning message.
type InterconnectAttachmentGroupsListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*InterconnectAttachmentGroupsListResponseWarningData `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 InterconnectAttachmentGroupsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentGroupsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentGroupsListResponseWarningData 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 InterconnectAttachmentGroupsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentGroupsListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectAttachmentGroupsOperationalStatus struct {
	AttachmentStatuses []*InterconnectAttachmentGroupsOperationalStatusAttachmentStatus `json:"attachmentStatuses,omitempty"`
	Configured         *InterconnectAttachmentGroupConfigured                           `json:"configured,omitempty"`
	// GroupStatus: Output only. Summarizes the status of the group.
	//
	// Possible values:
	//   "DEGRADED"
	//   "FULLY_DOWN"
	//   "FULLY_UP"
	//   "UNSPECIFIED"
	GroupStatus string                             `json:"groupStatus,omitempty"`
	Intent      *InterconnectAttachmentGroupIntent `json:"intent,omitempty"`
	// Operational: Output only. The operational state of the group, including only
	// active Attachments.
	Operational *InterconnectAttachmentGroupConfigured `json:"operational,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttachmentStatuses") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttachmentStatuses") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentGroupsOperationalStatusAttachmentStatus: The status of
// one Attachment in the group. List order is arbitrary.
type InterconnectAttachmentGroupsOperationalStatusAttachmentStatus struct {
	// AdminEnabled: Output only. Whether this Attachment is enabled. This becomes
	// false when the customer
	// drains their Attachment.
	AdminEnabled bool `json:"adminEnabled,omitempty"`
	// Attachment: Output only. The URL of the Attachment being described.
	Attachment string `json:"attachment,omitempty"`
	// IsActive: Output only. Whether this Attachment is participating in the
	// redundant configuration.
	// This will be ACTIVE if and only if the status below is CONNECTION_UP.
	// Any INACTIVE Attachments are excluded from the analysis that
	// generates
	// operational.availabilitySLA.
	//
	// Possible values:
	//   "ACTIVE"
	//   "INACTIVE"
	//   "UNSPECIFIED"
	IsActive string `json:"isActive,omitempty"`
	// Status: Output only. Whether this Attachment is active, and if so, whether
	// BGP is up.
	//
	// Possible values:
	//   "ATTACHMENT_STATUS_UNKNOWN"
	//   "CONNECTION_DISABLED"
	//   "CONNECTION_DOWN"
	//   "CONNECTION_UP"
	//   "DEFUNCT"
	//   "IPSEC_CONFIGURATION_NEEDED_STATUS"
	//   "IPSEC_READY_TO_RESUME_FLOW_STATUS"
	//   "IPV4_DOWN_IPV6_UP"
	//   "IPV4_UP_IPV6_DOWN"
	//   "PARTNER_REQUEST_RECEIVED"
	//   "PENDING_CUSTOMER"
	//   "PENDING_PARTNER"
	//   "PROVISIONED"
	//   "ROUTER_CONFIGURATION_BROKEN"
	//   "UNPROVISIONED"
	Status string `json:"status,omitempty"`
	// 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 InterconnectAttachmentGroupsOperationalStatusAttachmentStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectAttachmentL2Forwarding: L2 Interconnect Attachment related
// configuration.
type InterconnectAttachmentL2Forwarding struct {
	// ApplianceMappings: Optional. A map of VLAN tags to appliances and optional
	// inner mapping
	// rules. If VLANs are not explicitly mapped to any appliance,
	// the
	// defaultApplianceIpAddress is used.
	//
	// Each VLAN tag can be a single number or a range of numbers in the range
	// of 1 to 4094, e.g., "1" or "4001-4094". Non-empty and non-overlapping
	// VLAN tag ranges are enforced, and violating operations will be
	// rejected.
	//
	// The VLAN tags in the Ethernet header must use an ethertype value of
	// 0x88A8 or 0x8100.
	ApplianceMappings map[string]InterconnectAttachmentL2ForwardingApplianceMapping `json:"applianceMappings,omitempty"`
	// DefaultApplianceIpAddress: Optional. A single IPv4 or IPv6 address used as
	// the default destination
	// IP when there is no VLAN mapping result found.
	//
	// Unset field (null-value) indicates the unmatched packet should be
	// dropped.
	DefaultApplianceIpAddress string `json:"defaultApplianceIpAddress,omitempty"`
	// GeneveHeader: Optional. It represents the structure of a Geneve (Generic
	// Network
	// Virtualization Encapsulation) header, as defined in RFC8926. It encapsulates
	// packets from various
	// protocols (e.g., Ethernet, IPv4, IPv6) for use in network
	// virtualization
	// environments.
	GeneveHeader *InterconnectAttachmentL2ForwardingGeneveHeader `json:"geneveHeader,omitempty"`
	// Network: Required. Resource URL of the network to which this attachment
	// belongs.
	Network string `json:"network,omitempty"`
	// TunnelEndpointIpAddress: Required. A single IPv4 or IPv6 address. This
	// address will be used as the
	// source IP address for packets sent to the appliances, and must be used
	// as
	// the destination IP address for packets that should be sent out through
	// this attachment.
	TunnelEndpointIpAddress string `json:"tunnelEndpointIpAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplianceMappings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplianceMappings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentL2ForwardingApplianceMapping: Two-level
// VLAN-to-Appliance mapping rule.
type InterconnectAttachmentL2ForwardingApplianceMapping struct {
	// ApplianceIpAddress: Optional. A single IPv4 or IPv6 address used as the
	// destination IP
	// address for ingress packets that match on a VLAN tag, but do not match
	// a more specific inner VLAN tag.
	//
	// Unset field (null-value) indicates both VLAN tags are required to be
	// mapped. Otherwise, defaultApplianceIpAddress is used.
	ApplianceIpAddress string `json:"applianceIpAddress,omitempty"`
	// InnerVlanToApplianceMappings: Optional. Used to match against the inner VLAN
	// when the packet
	// contains two VLAN tags.
	//
	// A list of mapping rules from inner VLAN tags to IP addresses. If the
	// inner VLAN is not explicitly mapped to an IP address range,
	// the
	// applianceIpAddress is used.
	InnerVlanToApplianceMappings []*InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping `json:"innerVlanToApplianceMappings,omitempty"`
	// Name: Optional. The name of this appliance mapping rule.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplianceIpAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplianceIpAddress") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
// : The inner VLAN-to-Appliance mapping.
type InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping struct {
	// InnerApplianceIpAddress: Required in this object. A single IPv4 or IPv6
	// address used as the
	// destination IP address for ingress packets that match on both VLAN
	// tags.
	InnerApplianceIpAddress string `json:"innerApplianceIpAddress,omitempty"`
	// InnerVlanTags: Required in this object. Used to match the inner VLAN tag on
	// the
	// packet. Each entry can be a single number or a range of numbers in
	// the range of 1 to 4094, e.g., ["1", "4001-4094"] is valid. Non-empty
	// and Non-overlapping VLAN tag ranges are enforced, and violating
	// operations will be rejected.
	//
	// The inner VLAN tags must have an ethertype value of 0x8100.
	InnerVlanTags []string `json:"innerVlanTags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InnerApplianceIpAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InnerApplianceIpAddress") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectAttachmentL2ForwardingGeneveHeader: GeneveHeader related
// configurations.
type InterconnectAttachmentL2ForwardingGeneveHeader struct {
	// Vni: Optional. VNI is a 24-bit unique virtual network identifier, from 0
	// to
	// 16,777,215.
	Vni int64 `json:"vni,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Vni") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Vni") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectAttachmentL2ForwardingGeneveHeader) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentL2ForwardingGeneveHeader
	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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// InterconnectAttachmentParams: Additional interconnect attachment parameters.
type InterconnectAttachmentParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	// * Inconsistent format is not supported. For instance:
	//   {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid.
	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 InterconnectAttachmentParams) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectAttachmentParams
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// InterconnectGroup: An interconnect group resource allows customers to
// create, analyze, and
// expand their redundant connections.
type InterconnectGroup struct {
	Configured *InterconnectGroupConfigured `json:"configured,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// Etag: Opaque system-generated token that uniquely identifies the
	// configuration.
	// If provided when patching a configuration in update mode, the provided
	// token must match the current token or the update is rejected. This
	// provides
	// a reliable means of doing read-modify-write (optimistic locking)
	// as
	// described by AIP 154.
	Etag string `json:"etag,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource type.
	// The server
	// generates this identifier.
	Id     uint64                   `json:"id,omitempty,string"`
	Intent *InterconnectGroupIntent `json:"intent,omitempty"`
	// Interconnects: Interconnects in the InterconnectGroup. Keys are arbitrary
	// user-specified
	// strings. Users are encouraged, but not required, to use their
	// preferred
	// format for resource links as keys.
	// Note that there are add-members and remove-members methods in gcloud.
	// The size of this map is limited by an "Interconnects per group" quota.
	Interconnects map[string]InterconnectGroupInterconnect `json:"interconnects,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource. Always
	// compute#InterconnectGroup
	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 withRFC1035.
	// 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"`
	PhysicalStructure *InterconnectGroupPhysicalStructure `json:"physicalStructure,omitempty"`
	// SelfLink: Output only. [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. "Configured") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Configured") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupConfigured: [Output Only] The status of the group as
// configured. This has the same
// structure as the operational field reported by the OperationalStatus
// method, but does not take into account the operational status of
// each
// resource.
type InterconnectGroupConfigured struct {
	TopologyCapability *InterconnectGroupConfiguredTopologyCapability `json:"topologyCapability,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TopologyCapability") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TopologyCapability") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupConfiguredTopologyCapability: [Output Only] How reliable
// this topology is configured to be, and why
// this group does or does not meet the requirements for the
// intended
// capability.
type InterconnectGroupConfiguredTopologyCapability struct {
	IntendedCapabilityBlockers []*InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers `json:"intendedCapabilityBlockers,omitempty"`
	// Possible values:
	//   "NO_SLA"
	//   "PRODUCTION_CRITICAL"
	//   "PRODUCTION_NON_CRITICAL"
	//   "UNSPECIFIED"
	SupportedSla string `json:"supportedSla,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IntendedCapabilityBlockers")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IntendedCapabilityBlockers") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers:
// [Output Only] Reasons why configuration.topologyCapability.sla differs
// from intent.topologyCapability. This list is empty if and only if those
// are the same.
type InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers struct {
	// Possible values:
	//   "INCOMPATIBLE_METROS"
	//   "NOT_AVAILABLE"
	//   "NO_INTERCONNECTS"
	//   "NO_INTERCONNECTS_IN_METRO_AND_ZONE"
	//   "OTHER"
	//   "UNSPECIFIED"
	BlockerType string `json:"blockerType,omitempty"`
	// DocumentationLink: Output only. [Output Only] The url of Google Cloud public
	// documentation explaining
	// this requirement. This is set for every type of requirement.
	DocumentationLink string `json:"documentationLink,omitempty"`
	// Explanation: Output only. [Output Only] A human-readable explanation of this
	// requirement and
	// why it's not met. This is set for every type of requirement.
	Explanation string `json:"explanation,omitempty"`
	// Facilities: Output only. [Output Only] Facilities used to explain this
	// blocker in more detail.
	// Like physicalStructure.metros.facilities.facility, this is a numeric
	// string like "5467".
	Facilities []string `json:"facilities,omitempty"`
	// Interconnects: Output only. [Output Only] Interconnects used to explain this
	// blocker in more
	// detail.
	Interconnects []string `json:"interconnects,omitempty"`
	// Metros: Output only. [Output Only] Metros used to explain this blocker in
	// more detail.
	// These are three-letter lowercase strings like "iad". A blocker
	// like
	// INCOMPATIBLE_METROS will specify the problematic metros in this
	// field.
	Metros []string `json:"metros,omitempty"`
	// Zones: Output only. [Output Only] Zones used to explain this blocker in more
	// detail.
	// Zone names are "zone1" and/or "zone2".
	Zones []string `json:"zones,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlockerType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlockerType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupIntent: The user's intent for this group. This is the only
// required field besides
// the name that must be specified on group creation.
type InterconnectGroupIntent struct {
	// Possible values:
	//   "NO_SLA"
	//   "PRODUCTION_CRITICAL"
	//   "PRODUCTION_NON_CRITICAL"
	//   "UNSPECIFIED"
	TopologyCapability string `json:"topologyCapability,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TopologyCapability") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TopologyCapability") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupInterconnect: An Interconnect in this InterconnectGroup.
type InterconnectGroupInterconnect struct {
	// Interconnect: The URL of an Interconnect in this group. All Interconnects in
	// the group
	// are unique.
	Interconnect string `json:"interconnect,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Interconnect") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Interconnect") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupPhysicalStructure: [Output Only] An analysis of the
// physical layout of Interconnects in this
// group. Every Interconnect in the group is shown once in this structure.
type InterconnectGroupPhysicalStructure struct {
	Metros []*InterconnectGroupPhysicalStructureMetros `json:"metros,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Metros") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Metros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupPhysicalStructureMetros: [Output Only] The metros
// Interconnects in this group are in.
type InterconnectGroupPhysicalStructureMetros struct {
	Facilities []*InterconnectGroupPhysicalStructureMetrosFacilities `json:"facilities,omitempty"`
	// Metro: Output only. [Output Only] The name of the metro, as a three-letter
	// lowercase string
	// like "iad". This is the first component of the location of
	// Interconnects underneath this.
	Metro string `json:"metro,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Facilities") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Facilities") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupPhysicalStructureMetrosFacilities: [Output Only] The
// facilities Interconnects in this metro are present
// in.
type InterconnectGroupPhysicalStructureMetrosFacilities struct {
	// Facility: Output only. [Output Only] The ID of this facility, as a numeric
	// string like
	// "5467". This is the third component of the location of Interconnects
	// in this facility.
	Facility string                                                     `json:"facility,omitempty"`
	Zones    []*InterconnectGroupPhysicalStructureMetrosFacilitiesZones `json:"zones,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Facility") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Facility") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupPhysicalStructureMetrosFacilitiesZones: [Output Only] The
// zones that Interconnects in this facility are
// present in.
type InterconnectGroupPhysicalStructureMetrosFacilitiesZones struct {
	// Interconnects: Output only. [Output Only] URLs of Interconnects in this
	// redundancy group in the
	// given metro, facility, and zone.
	Interconnects []string `json:"interconnects,omitempty"`
	// Zone: Output only. [Output Only] The name of the zone, either "zone1" or
	// "zone2".
	// This is the second component of the location of Interconnects in
	// this facility.
	Zone string `json:"zone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Interconnects") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Interconnects") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type InterconnectGroupsCreateMembers struct {
	// IntentMismatchBehavior: How to behave when
	// configured.topologyCapability.supportedSLA would not
	// equal intent.topologyCapability after this call.
	//
	// Possible values:
	//   "CREATE"
	//   "REJECT"
	//   "UNSPECIFIED"
	IntentMismatchBehavior string                                              `json:"intentMismatchBehavior,omitempty"`
	Interconnects          []*InterconnectGroupsCreateMembersInterconnectInput `json:"interconnects,omitempty"`
	// TemplateInterconnect: Parameters for the Interconnects to create.
	TemplateInterconnect *InterconnectGroupsCreateMembersInterconnectInput `json:"templateInterconnect,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IntentMismatchBehavior") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IntentMismatchBehavior") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type InterconnectGroupsCreateMembersInterconnectInput struct {
	// 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"`
	// 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"`
	// Facility: A zone-free location to use for all Interconnects created in this
	// call,
	// like "iad-1234".
	Facility string `json:"facility,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"`
	// 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.
	//    - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4
	//    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];
	//   "LINK_TYPE_ETHERNET_400G_LR4" - 400G Ethernet, LR4 Optics.
	LinkType string `json:"linkType,omitempty"`
	// Name: Name of the Interconnects to be created. This must be specified on
	// the
	// template and/or on each individual interconnect. The name, if not
	// empty,
	// must be 1-63 characters long, and comply with RFC1035.
	// Specifically, any nonempty 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"`
	// 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:
	//
	//    - IF_MACSEC: If specified, then the connection is created on MACsec
	//    capable hardware ports. If not specified, non-MACsec capable ports will
	//    also be considered.
	//    - IF_CROSS_SITE_NETWORK: If specified, then the connection is created
	//    exclusively for Cross-Site Networking. The connection can not be used
	// for
	//    Cross-Site Networking unless this feature is specified.
	//
	// Possible values:
	//   "IF_CROSS_SITE_NETWORK" - Cross-Site Networking
	//   "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding
	//   "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"`
	// 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 InterconnectGroupsCreateMembersInterconnectInput) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectGroupsCreateMembersInterconnectInput
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// InterconnectGroupsGetOperationalStatusResponse: Response for the
// InterconnectGroupsGetOperationalStatusResponse.
type InterconnectGroupsGetOperationalStatusResponse struct {
	Etag   string                               `json:"etag,omitempty"`
	Result *InterconnectGroupsOperationalStatus `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 InterconnectGroupsGetOperationalStatusResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectGroupsGetOperationalStatusResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectGroupsListResponse 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 InterconnectGroup resources.
	Items []*InterconnectGroup `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 thanmaxResults, 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. [Output Only] Unreachable
	// resources.
	// end_interface: MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *InterconnectGroupsListResponseWarning `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 InterconnectGroupsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectGroupsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectGroupsListResponseWarning: [Output Only] Informational warning
// message.
type InterconnectGroupsListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*InterconnectGroupsListResponseWarningData `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 InterconnectGroupsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectGroupsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type InterconnectGroupsListResponseWarningData 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 InterconnectGroupsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectGroupsListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// InterconnectGroupsOperationalStatus: Request to get the status of the
// interconnect group with extra detail.
type InterconnectGroupsOperationalStatus struct {
	// Configured: Output only. The configuration analysis, as returned by Get.
	Configured *InterconnectGroupConfigured `json:"configured,omitempty"`
	// GroupStatus: Output only. Summarizes the status of the group.
	//
	// Possible values:
	//   "DEGRADED"
	//   "FULLY_DOWN"
	//   "FULLY_UP"
	//   "GROUPS_STATUS_UNSPECIFIED"
	GroupStatus string `json:"groupStatus,omitempty"`
	// Intent: Output only. The intent of the resource, as returned by Get.
	Intent               *InterconnectGroupIntent                                 `json:"intent,omitempty"`
	InterconnectStatuses []*InterconnectGroupsOperationalStatusInterconnectStatus `json:"interconnectStatuses,omitempty"`
	// Operational: Output only. The operational state of the group, including only
	// active Interconnects.
	Operational *InterconnectGroupConfigured `json:"operational,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Configured") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Configured") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InterconnectGroupsOperationalStatusInterconnectStatus: The status of one
// Interconnect in the group. The order is arbitrary.
type InterconnectGroupsOperationalStatusInterconnectStatus struct {
	// AdminEnabled: Output only. Whether the Interconnect is enabled.
	AdminEnabled bool `json:"adminEnabled,omitempty"`
	// Diagnostics: Output only. The diagnostics of the Interconnect, as returned
	// by the existing
	// get-diagnostics method.
	Diagnostics *InterconnectDiagnostics `json:"diagnostics,omitempty"`
	// Interconnect: Output only. The URL of the Interconnect being described.
	Interconnect string `json:"interconnect,omitempty"`
	// IsActive: Output only. Whether this interconnect is participating in the
	// redundant
	// configuration.
	//
	// Possible values:
	//   "ACTIVE"
	//   "INACTIVE"
	//   "IS_ACTIVE_UNSPECIFIED"
	IsActive string `json:"isActive,omitempty"`
	// 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 InterconnectGroupsOperationalStatusInterconnectStatus) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectGroupsOperationalStatusInterconnectStatus
	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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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:
	//
	//    - IF_MACSEC
	//    - IF_CROSS_SITE_NETWORK
	//
	// Possible values:
	//   "IF_CROSS_SITE_NETWORK" - Cross-Site Networking
	//   "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding
	//   "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
	//    - LINK_TYPE_ETHERNET_400G_LR4
	//
	// Possible values:
	//   "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics.
	//   "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics.
	// [(rate_bps) =  10000000000];
	//   "LINK_TYPE_ETHERNET_400G_LR4" - 400G Ethernet, LR4 Optics.
	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. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CrossSiteInterconnectInfos: [Output Only] A list of
	// InterconnectLocation.CrossSiteInterconnectInfo
	// objects, that describe where Cross-Site Interconnect wires may connect
	// to
	// from this location and associated connection parameters.
	// Cross-Site
	// Interconnect isn't allowed to locations which are not listed.
	CrossSiteInterconnectInfos []*InterconnectLocationCrossSiteInterconnectInfo `json:"crossSiteInterconnectInfos,omitempty"`
	// Description: Output only. [Output Only] An optional description of the
	// resource.
	Description string `json:"description,omitempty"`
	// FacilityProvider: Output only. [Output Only] The name of the provider for
	// this facility (e.g., EQUINIX).
	FacilityProvider string `json:"facilityProvider,omitempty"`
	// FacilityProviderFacilityId: Output only. [Output Only] A provider-assigned
	// Identifier for this facility (e.g.,
	// Ashburn-DC1).
	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#interconnectLocation for interconnect locations.
	Kind string `json:"kind,omitempty"`
	// Name: Output only. [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// PeeringdbFacilityId: Output only. [Output Only] The peeringdb identifier for
	// this facility (corresponding
	// with a netfac type in peeringdb).
	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
	// RegionInfos: Output only. [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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SingleRegionProductionCriticalPeerLocations: Output only. [Output Only] URLs
	// of the other locations that can pair up with this
	// location to support Single-Region 99.99% SLA. E.g. iad-zone1-1
	// and
	// iad-zone2-5467 are Single-Region 99.99% peer locations of each other.
	SingleRegionProductionCriticalPeerLocations []string `json:"singleRegionProductionCriticalPeerLocations,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. [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)
}

// InterconnectLocationCrossSiteInterconnectInfo: Information about Cross-Site
// Interconnect wires which may be created
// between the containing location and another remote location.
type InterconnectLocationCrossSiteInterconnectInfo struct {
	// City: Output only. The remote location for Cross-Site Interconnect wires.
	// This specifies an
	// InterconnectLocation city (metropolitan area designator), which itself
	// may match multiple InterconnectLocations.
	City string `json:"city,omitempty"`
	// ForceSendFields is a list of field names (e.g. "City") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "City") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s InterconnectLocationCrossSiteInterconnectInfo) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectLocationCrossSiteInterconnectInfo
	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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. Expected round-trip time in milliseconds, from
	// this InterconnectLocation
	// to a VM in this region.
	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
	// L2ForwardingEnabled: Output only. Identifies whether L2 Interconnect
	// Attachments can be created in this
	// region for interconnects that are in this location.
	L2ForwardingEnabled bool `json:"l2ForwardingEnabled,omitempty"`
	// LocationPresence: Output only. 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: Output only. 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
	// ashould-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
	// amust-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 withRFC1035. 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)
}

// InterconnectParams: Additional interconnect parameters.
type InterconnectParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	// * Inconsistent format is not supported. For instance:
	//   {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid.
	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 InterconnectParams) MarshalJSON() ([]byte, error) {
	type NoMethod InterconnectParams
	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. [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. [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. [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. [Output Only] Constraints on the parameters for
	// creating Cross-Cloud
	// Interconnect and associated InterconnectAttachments.
	Constraints *InterconnectRemoteLocationConstraints `json:"constraints,omitempty"`
	// Continent: Output only. [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. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: Output only. [Output Only] An optional description of the
	// resource.
	Description string `json:"description,omitempty"`
	// FacilityProvider: Output only. [Output Only] The name of the provider for
	// this facility (e.g., EQUINIX).
	FacilityProvider string `json:"facilityProvider,omitempty"`
	// FacilityProviderFacilityId: Output only. [Output Only] A provider-assigned
	// Identifier for this facility (e.g.,
	// Ashburn-DC1).
	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#interconnectRemoteLocation for interconnect remote
	// locations.
	Kind string `json:"kind,omitempty"`
	// Lacp: Output only. [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. [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. [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"`
	// MaxLagSize400Gbps: Output only. [Output Only]
	// The maximum number of 400 Gbps ports supported in a link aggregation
	// group
	// (LAG). When linkType is 400 Gbps, requestedLinkCount cannot
	// exceed
	// max_lag_size_400_gbps.
	MaxLagSize400Gbps int64 `json:"maxLagSize400Gbps,omitempty"`
	// Name: Output only. [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// PeeringdbFacilityId: Output only. [Output Only] The peeringdb identifier for
	// this facility (corresponding
	// with a netfac type in peeringdb).
	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
	// PermittedConnections: Output only. [Output Only] Permitted connections.
	PermittedConnections []*InterconnectRemoteLocationPermittedConnections `json:"permittedConnections,omitempty"`
	// RemoteService: Output only. [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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Status: Output only. [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. [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. [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. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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)
}

// License: Represents a License resource.
//
// A License represents billing and aggregate usage data forpublic
// andmarketplace images.
//
//	*Caution* This resource is intended for
//
// use only by third-party partners who are creatingCloud Marketplace
// images.
type License struct {
	// AllowedReplacementLicenses: Specifies licenseCodes of licenses that can
	// replace this license. Note:
	// such replacements are allowed even if removable_from_disk is false.
	AllowedReplacementLicenses []string `json:"allowedReplacementLicenses,omitempty"`
	// AppendableToDisk: If true, this license can be appended to an existing
	// disk's set of
	// licenses.
	AppendableToDisk bool `json:"appendableToDisk,omitempty"`
	// ChargesUseFee: [Output Only] Deprecated. This field no longer reflects
	// whether a license
	// charges a usage fee.
	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// IncompatibleLicenses: Specifies licenseCodes of licenses that are
	// incompatible with this license.
	// If a license is incompatible with this license, it cannot be attached to
	// the same disk or image.
	IncompatibleLicenses []string `json:"incompatibleLicenses,omitempty"`
	// Kind: Output only. [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"`
	// MinimumRetention: If set, this license will be unable to be removed or
	// replaced once attached
	// to a disk until the minimum_retention period has passed.
	MinimumRetention *Duration `json:"minimumRetention,omitempty"`
	// MultiTenantOnly: If true, this license can only be used on VMs on multi
	// tenant nodes.
	MultiTenantOnly bool `json:"multiTenantOnly,omitempty"`
	// Name: Name of the resource. The name must be 1-63 characters long and
	// comply withRFC1035.
	Name string `json:"name,omitempty"`
	// OsLicense: If true, indicates this is an OS license. Only one OS license can
	// be
	// attached to a disk or image at a time.
	OsLicense bool `json:"osLicense,omitempty"`
	// Params: Input only. Additional params passed with the request, but not
	// persisted
	// as part of resource payload.
	Params *LicenseParams `json:"params,omitempty"`
	// RemovableFromDisk: If true, this license can be removed from a disk's set of
	// licenses, with no
	// replacement license needed.
	RemovableFromDisk bool `json:"removableFromDisk,omitempty"`
	// RequiredCoattachedLicenses: Specifies the set of permissible coattached
	// licenseCodes of licenses that
	// satisfy the coattachment requirement of this license. At least one
	// license
	// from the set must be attached to the same disk or image as this license.
	RequiredCoattachedLicenses []string `json:"requiredCoattachedLicenses,omitempty"`
	// ResourceRequirements: [Input Only] Deprecated.
	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource with the resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// SoleTenantOnly: If true, this license can only be used on VMs on sole tenant
	// nodes.
	SoleTenantOnly bool `json:"soleTenantOnly,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"`
	// UpdateTimestamp: Output only. [Output Only] Last update timestamp
	// inRFC3339
	// text format.
	UpdateTimestamp string `json:"updateTimestamp,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AllowedReplacementLicenses")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowedReplacementLicenses") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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 alicense
// resource.
//
//	*Caution* This resource is intended for
//
// use only by third-party partners who are creatingCloud Marketplace
// images.
type LicenseCode struct {
	// AllowedReplacementLicenses: Specifies licenseCodes of licenses that can
	// replace this license. Note:
	// such replacements are allowed even if removable_from_disk is false.
	AllowedReplacementLicenses []string `json:"allowedReplacementLicenses,omitempty"`
	// AppendableToDisk: If true, this license can be appended to an existing
	// disk's set of
	// licenses.
	AppendableToDisk bool `json:"appendableToDisk,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: Output only. [Output Only] Description of this License Code.
	Description string `json:"description,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// IncompatibleLicenses: Specifies licenseCodes of licenses that are
	// incompatible with this license.
	// If a license is incompatible with this license, it cannot be attached to
	// the same disk or image.
	IncompatibleLicenses []string `json:"incompatibleLicenses,omitempty"`
	// Kind: Output only. [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"`
	// MinimumRetention: If set, this license will be unable to be removed or
	// replaced once attached
	// to a disk until the minimum_retention period has passed.
	MinimumRetention *Duration `json:"minimumRetention,omitempty"`
	// MultiTenantOnly: If true, this license can only be used on VMs on multi
	// tenant nodes.
	MultiTenantOnly bool `json:"multiTenantOnly,omitempty"`
	// Name: Output only. [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"`
	// OsLicense: If true, indicates this is an OS license. Only one OS license can
	// be
	// attached to a disk or image at a time.
	OsLicense bool `json:"osLicense,omitempty"`
	// RemovableFromDisk: If true, this license can be removed from a disk's set of
	// licenses, with no
	// replacement license needed.
	RemovableFromDisk bool `json:"removableFromDisk,omitempty"`
	// RequiredCoattachedLicenses: Specifies the set of permissible coattached
	// licenseCodes of licenses that
	// satisfy the coattachment requirement of this license. At least one
	// license
	// from the set must be attached to the same disk or image as this license.
	RequiredCoattachedLicenses []string `json:"requiredCoattachedLicenses,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SoleTenantOnly: If true, this license can only be used on VMs on sole tenant
	// nodes.
	SoleTenantOnly bool `json:"soleTenantOnly,omitempty"`
	// State: Output only. [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. [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"`
	// UpdateTimestamp: Output only. [Output Only] Last update timestamp
	// inRFC3339
	// text format.
	UpdateTimestamp string `json:"updateTimestamp,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AllowedReplacementLicenses")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowedReplacementLicenses") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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. [Output Only] Description of this License Code.
	Description string `json:"description,omitempty"`
	// SelfLink: Output only. [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)
}

// LicenseParams: Additional license params.
type LicenseParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// license. Tag keys and values
	// have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 LicenseParams) MarshalJSON() ([]byte, error) {
	type NoMethod LicenseParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LicenseResourceCommitment: Commitment for a particular license resource.
type LicenseResourceCommitment struct {
	// Amount: The number of licenses you plan to purchase.
	Amount int64 `json:"amount,omitempty,string"`
	// CoresPerLicense: The number of cores per license.
	CoresPerLicense string `json:"coresPerLicense,omitempty"`
	// License: The 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: [Input Only] Deprecated. This field no longer reflects the
	// minimum number
	// of guest cpus required to use the Instance.
	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
	// MinMemoryMb: [Input Only] Deprecated. This field no longer reflects the
	// minimum memory
	// required to use the Instance.
	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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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.
	// The bulkInsert operation doesn't create instances in an AI zone, even if
	// an AI zone is available in the specified region. For example, if you set
	// a
	// DENY preference for us-central1-a, Compute Engine will
	// consider
	// us-central1-b and us-central1-c for instance creation, but
	// not
	// us-central1-ai1a. Also, you can't use the locations[] configuration to
	// allow instance creation in an AI zone. To include an AI zone in
	// bulkInsert
	// operations, use the locationPolicy.zones[] field.
	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"`
	// Zones: The bulkInsert operation applies any preferences set in the
	// locations
	// field to the specific zones listed in the zones field if the same zones
	// are specified in both fields.
	Zones []*LocationPolicyZoneConfiguration `json:"zones,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"`
	// Preference: Preference for a given location. Set to either ALLOW orDENY.
	//
	// 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)
}

type LocationPolicyZoneConfiguration struct {
	// Zone: The URL of the zone.
	// The zone must exist in the region where the request is called.
	// Zones must be represented as valid partial URLs,
	// such as zones/us-central1-a.
	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 LocationPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
	type NoMethod LocationPolicyZoneConfiguration
	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,
// seeMachine images.
type MachineImage struct {
	// CreationTimestamp: Output only. [Output Only] The creation timestamp for
	// this machine image inRFC3339
	// 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. [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. [Output Only] The resource type, which is
	// alwayscompute#machineImage for machine image.
	Kind string `json:"kind,omitempty"`
	// LabelFingerprint: A fingerprint for the labels being applied to this machine
	// image, 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
	// machine image.
	LabelFingerprint string `json:"labelFingerprint,omitempty"`
	// Labels: Labels to apply to this machine image. These can be later modified
	// by
	// the setLabels method.
	Labels map[string]string `json:"labels,omitempty"`
	// MachineImageEncryptionKey: Encrypts the machine image using
	// acustomer-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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional parameters that are passed in
	// the request, but are
	// not persisted in the resource.
	Params *MachineImageParams `json:"params,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: Output only. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SavedDisks: Output only. An array of Machine Image specific properties for
	// disks attached to the
	// source instance
	SavedDisks []*SavedDisk `json:"savedDisks,omitempty"`
	// SelfLink: Output only. [Output Only] The URL for this machine image. The
	// server defines this URL.
	SelfLink string `json:"selfLink,omitempty"`
	// SourceDiskEncryptionKeys: [Input Only] Thecustomer-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. [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. [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 themachine image is
	// stored.
	StorageLocations []string `json:"storageLocations,omitempty"`
	// TotalStorageBytes: Output only. [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. [Output Only] The resource type, which is
	// alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// MachineImageParams: Machine Image parameters
type MachineImageParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// machine image. Tag keys and values
	// have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 MachineImageParams) MarshalJSON() ([]byte, error) {
	type NoMethod MachineImageParams
	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, readMachine 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 inRFC3339
	// 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"`
	// ImageSpaceGb: [Deprecated] This property is deprecated and will never be
	// populated with
	// any relevant values.
	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
	// IsSharedCpu: [Output Only] Whether this machine type has a shared CPU.
	// SeeShared-core machine
	// types for more information.
	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
	// Kind: Output only. [Output Only] The type of the resource.
	// Alwayscompute#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"`
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 {
	// CurrentAction: Output only. [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'stargetSize
	// 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_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.
	//   "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. [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. [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"`
	// InstanceHealth: Output only. [Output Only] Health state of the instance per
	// health-check.
	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
	// InstanceStatus: Output only. [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.
	//   "PENDING" - For Flex Start provisioning instance is waiting for available
	// capacity
	// from Dynamic Workload Scheduler (DWS).
	//   "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"`
	// LastAttempt: Output only. [Output Only] Information about the last attempt
	// to create or delete
	// the instance.
	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
	// Name: Output only. [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. [Output Only] Preserved state applied
	// from per-instance config
	// for this instance.
	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
	// PreservedStateFromPolicy: Output only. [Output Only] Preserved state
	// generated based on stateful policy
	// for this instance.
	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
	// PropertiesFromFlexibilityPolicy: Output only. [Output Only] Instance
	// properties selected for this instance resulting
	// from
	// InstanceFlexibilityPolicy.
	PropertiesFromFlexibilityPolicy *ManagedInstancePropertiesFromFlexibilityPolicy `json:"propertiesFromFlexibilityPolicy,omitempty"`
	// Version: Output only. [Output Only] Intended version of this instance.
	Version *ManagedInstanceVersion `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentAction") to include in API
	// requests with the JSON null value. By default, fields with empty values 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)
}

type ManagedInstanceInstanceHealth struct {
	// DetailedHealthState: Output only. [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. [Output Only] The URL for the health check that
	// verifies whether the
	// instance is healthy.
	HealthCheck string `json:"healthCheck,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. [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. [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: Output only. The machine type to be used for this instance.
	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 ManagedInstancePropertiesFromFlexibilityPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod ManagedInstancePropertiesFromFlexibilityPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ManagedInstanceVersion struct {
	// InstanceTemplate: Output only. [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. [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 error412 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. [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)
}

// 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 itsfilterMatchCriteria is set to
// MATCH_ANY, at least
// one of thefilterLabels 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 inmetadataFilters
// 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
	// themetadataFilter to be considered a match.
	//   "MATCH_ANY" - Specifies that any filterLabel must match for
	// themetadataFilter to be considered a match.
	//   "NOT_SET" - Indicates that the match criteria was not set. AmetadataFilter
	// 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)
}

// 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 withRFC1035.
	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)
}

// NatIpInfo: Contains NAT IP information of a NAT config (i.e. usage status,
// mode).
type NatIpInfo struct {
	// NatIpInfoMappings: Output only. A list of all NAT IPs assigned to this NAT
	// config.
	NatIpInfoMappings []*NatIpInfoNatIpInfoMapping `json:"natIpInfoMappings,omitempty"`
	// NatName: Output only. 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: Output only. Specifies whether NAT IP is auto or manual.
	//
	// Possible values:
	//   "AUTO"
	//   "MANUAL"
	Mode string `json:"mode,omitempty"`
	// NatIp: Output only. NAT IP address. For example: 203.0.113.11.
	NatIp string `json:"natIp,omitempty"`
	// Usage: Output only. 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, readVirtual 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 aCIDR 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 inAuto mode VPC network IP
	// ranges.
	//
	// For custom mode VPC networks, you can add subnets using the
	// subnetworksinsert
	// method.
	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [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. [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. [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 withRFC1035.
	// 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"`
	// 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/{api_version}/projects/{project_id}/global/networkProfiles/{network_profile_name}
	//    - projects/{project_id}/global/networkProfiles/{network_profile_name}
	NetworkProfile string `json:"networkProfile,omitempty"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *NetworkParams `json:"params,omitempty"`
	// Peerings: Output only. [Output Only] A list of network peerings for the
	// resource.
	Peerings []*NetworkPeering `json:"peerings,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. [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. [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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 withRFC1035.
	// 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. [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. [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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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"`
	// ServiceClassId: The service class id of the producer service to which the IP
	// was
	// assigned.
	ServiceClassId string `json:"serviceClassId,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. [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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// 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 error412 conditionNotMet.
	//
	// To see the latest fingerprint, make a get() request to
	// retrieve a NetworkEdgeSecurityService.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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. [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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Optional 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.
	//
	// Optional. Only valid for network endpoint groups created
	// withGCE_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
	// isNON_GCP_FQDN_PORT.
	Fqdn string `json:"fqdn,omitempty"`
	// Instance: The name or a URL of VM instance of this network
	// endpoint.
	// Optional, the field presence depends on the network endpoint type. The
	// field is required for network endpoints of type GCE_VM_IP
	// andGCE_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 withRFC1035
	// 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
	// typeGCE_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 typeGCE_VM_IP.
	Port int64 `json:"port,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, seeNetwork
// endpoint groups overview.
//
// Note: Use the following APIs to manage network endpoint groups:
//
//	-
//	To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity
//	NEGs): zonal
//	API
//	-
//	To manage NEGs with regional scope (such as regional internet NEGs,
//	serverless NEGs, Private Service Connect NEGs): regional
//	API
//	-
//	To manage NEGs with global scope (such as global internet NEGs):global
//	API
type NetworkEndpointGroup struct {
	// Annotations: Optional. Metadata defined as annotations on the network
	// endpoint group.
	Annotations map[string]string `json:"annotations,omitempty"`
	// AppEngine: Optional. Only valid when networkEndpointType isSERVERLESS. Only
	// one of cloudRun,appEngine or cloudFunction may be set.
	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
	// CloudFunction: Optional. Only valid when networkEndpointType isSERVERLESS.
	// Only one of cloudRun,appEngine or cloudFunction may be set.
	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
	// CloudRun: Optional. Only valid when networkEndpointType isSERVERLESS. Only
	// one of cloudRun,appEngine or cloudFunction may be set.
	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DefaultPort: The default port used if the port number is not specified in
	// the network
	// endpoint.
	//
	// Optional. 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#networkEndpointGroup for network endpoint group.
	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 withRFC1035.
	// 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.
	// For networkEndpointType GCE_VM_IP_PORT,GCE_VM_IP_PORTMAP or
	// NON_GCP_PRIVATE_IP_PORT,
	// if this field is not specified, a default network will be used.
	// This field cannot be set for NEGs with networkEndpointType set toSERVERLESS
	// or PRIVATE_SERVICE_CONNECT and for
	// global NEGs.
	// For all other network endpoint types, this field is required.
	Network string `json:"network,omitempty"`
	// NetworkEndpointType: Type of network endpoints in this network endpoint
	// group. Can be one ofGCE_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: Optional. Only valid when networkEndpointType
	// isPRIVATE_SERVICE_CONNECT.
	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.
	//
	// Optional. Only valid when networkEndpointType isPRIVATE_SERVICE_CONNECT.
	PscTargetService string `json:"pscTargetService,omitempty"`
	// Region: Output only. [Output Only] The URL of theregion
	// where the network endpoint group is located.
	Region string `json:"region,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Size: Output only. [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"`
	// Zone: Output only. [Output Only] The URL of thezone
	// 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. [Output Only] The resource type, which is
	// alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 URLsfoo1-dot-appname.appspot.com/v1
	// andfoo1-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 andmydomain.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 withRFC1035.
	//
	// 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 withRFC1035.
	//
	// 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 andfoo1.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)
}

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. [Output Only] The resource type, which is
	// alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [Output Only] The PSC connection id of the PSC
	// Network Endpoint Group
	// Consumer.
	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
	// PscConnectionStatus: Output only. [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)
}

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 {
	// 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. "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 NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkEndpointGroupsListEndpointsRequest
	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. [Output Only] The resource type, which is
	// alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] The list
	// ofnetwork
	// endpoint groups that are contained in this scope.
	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output only] The health status of network
	// endpoint.
	//
	// Optional. Displayed only if the network endpoint has centralized
	// health
	// checking configured.
	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
	// NetworkEndpoint: Output only. [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)
}

type NetworkFirewallPolicyAggregatedList struct {
	// Id: [Output Only] Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of FirewallPoliciesScopedList resources.
	Items map[string]FirewallPoliciesScopedList `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of resource.
	// Alwayscompute#networkFirewallPoliciesAggregatedList for lists of
	// network firewall 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *NetworkFirewallPolicyAggregatedListWarning `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 NetworkFirewallPolicyAggregatedList) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkFirewallPolicyAggregatedList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkFirewallPolicyAggregatedListWarning: [Output Only] Informational
// warning message.
type NetworkFirewallPolicyAggregatedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*NetworkFirewallPolicyAggregatedListWarningData `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 NetworkFirewallPolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkFirewallPolicyAggregatedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkFirewallPolicyAggregatedListWarningData 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 NetworkFirewallPolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkFirewallPolicyAggregatedListWarningData
	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 noaccessConfigs
	// 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"`
	// EnableVpcScopedDns: Optional. If true, DNS resolution will be enabled over
	// this interface. Only valid
	// with network_attachment.
	EnableVpcScopedDns bool `json:"enableVpcScopedDns,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 theNetworkInterface. The
	// request will fail with error400 Bad Request if the fingerprint is not
	// provided, or412 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. [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. [Output Only] Type of the resource.
	// Alwayscompute#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 and7. 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
	//   "IRDMA" - IRDMA
	//   "MRDMA" - MRDMA
	//   "UNSPECIFIED_NIC_TYPE" - No type specified.
	//   "VIRTIO_NET" - VIRTIO
	NicType string `json:"nicType,omitempty"`
	// ParentNicName: Name of the parent network interface of a dynamic network
	// interface.
	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"`
	// ServiceClassId: Optional. Producer Service's Service class Id for the region
	// of this network
	// interface. Can only be used with network_attachment. It is not possible
	// to
	// use on its own however, network_attachment can be used
	// without
	// service_class_id.
	ServiceClassId string `json:"serviceClassId,omitempty"`
	// StackType: The stack type for this network interface. To assign only IPv4
	// addresses,
	// use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, useIPV4_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 only be assigned IPv4 addresses.
	//   "IPV6_ONLY" - The network interface will only be assigned IPv6 addresses.
	StackType string `json:"stackType,omitempty"`
	// Subnetwork: The URL of the Subnetwork resource for this instance. If the
	// network
	// resource is inlegacy
	// 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 dynamic network interface, must be  an integer in the
	// range
	// from 2 to 255 inclusively.
	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)
}

// 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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// NetworkParams: Additional network parameters.
type NetworkParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	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 NetworkParams) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkParams
	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 {
	// AutoCreateRoutes: This field will be deprecated soon. Use
	// theexchange_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 isACTIVE.
	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
	// ConnectionStatus: Output only. [Output Only] The effective state of the
	// peering connection
	// as a whole.
	ConnectionStatus *NetworkPeeringConnectionStatus `json:"connectionStatus,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 isACTIVE.
	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 withRFC1035.
	// 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: Output only. [Output Only] Maximum Transmission Unit in bytes of
	// the peer network.
	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. [Output Only] State for the peering.
	//
	// 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. [Output Only] Details about the current state of
	// the peering.
	StateDetails string `json:"stateDetails,omitempty"`
	// UpdateStrategy: The update strategy determines the semantics for updates and
	// deletes to the
	// peering connection configuration.
	//
	// Possible values:
	//   "CONSENSUS" - Updates are reflected in the local peering but aren't
	// applied to the
	// peering connection until a complementary change is made to the
	// matching peering.
	// To delete a peering with the consensus update strategy, both the
	// peerings
	// must request the deletion of the peering before the peering can be
	// deleted.
	//   "INDEPENDENT" - In this mode, changes to the peering configuration can
	// be unilaterally altered by changing either side of the peering.
	// This is the default value if the field is unspecified.
	//   "UNSPECIFIED" - Peerings with update strategy UNSPECIFIED are created
	// with
	// update strategy INDEPENDENT.
	UpdateStrategy string `json:"updateStrategy,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 NetworkPeering) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkPeering
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// NetworkPeeringConnectionStatus: [Output Only] Describes the state of a
// peering connection, not just the
// local peering. This field provides information about the effective
// settings
// for the connection as a whole, including pending delete/update requests
// for
// CONSENSUS peerings.
type NetworkPeeringConnectionStatus struct {
	// ConsensusState: The consensus state contains information about the status of
	// update
	// and delete for a consensus peering connection.
	ConsensusState *NetworkPeeringConnectionStatusConsensusState `json:"consensusState,omitempty"`
	// TrafficConfiguration: The active connectivity settings for the peering
	// connection based on the
	// settings of the network peerings.
	TrafficConfiguration *NetworkPeeringConnectionStatusTrafficConfiguration `json:"trafficConfiguration,omitempty"`
	// UpdateStrategy: The update strategy determines the update/delete semantics
	// for this
	// peering connection.
	//
	// Possible values:
	//   "CONSENSUS" - Updates are reflected in the local peering but aren't
	// applied to the
	// peering connection until a complementary change is made to the
	// matching peering.
	// To delete a peering with the consensus update strategy, both the
	// peerings
	// must request the deletion of the peering before the peering can be
	// deleted.
	//   "INDEPENDENT" - In this mode, changes to the peering configuration can
	// be unilaterally altered by changing either side of the peering.
	// This is the default value if the field is unspecified.
	//   "UNSPECIFIED" - Peerings with update strategy UNSPECIFIED are created
	// with
	// update strategy INDEPENDENT.
	UpdateStrategy string `json:"updateStrategy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsensusState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsensusState") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// NetworkPeeringConnectionStatusConsensusState: The status of update/delete
// for a consensus peering connection. Only set
// when connection_status.update_strategy isCONSENSUS or a network peering is
// proposing to update the
// strategy to CONSENSUS.
type NetworkPeeringConnectionStatusConsensusState struct {
	// DeleteStatus: The status of the delete request.
	//
	// Possible values:
	//   "DELETE_ACKNOWLEDGED" - Both network admins have agreed this consensus
	// peering connection can
	// be deleted.
	//   "DELETE_STATUS_UNSPECIFIED"
	//   "LOCAL_CANCEL_REQUESTED" - The local network admin requested to cancel
	// their delete request
	// after DELETE_ACKNOWLEDGED.
	//   "LOCAL_DELETE_REQUESTED" - Network admin has requested deletion of this
	// peering connection.
	//   "PEER_CANCEL_REQUESTED" - The peer network admin requested to cancel their
	// delete request after
	// DELETE_ACKNOWLEDGED.
	//   "PEER_DELETE_REQUESTED" - The peer network admin has requested deletion of
	// this peering
	// connection.
	DeleteStatus string `json:"deleteStatus,omitempty"`
	// UpdateStatus: The status of the update request.
	//
	// Possible values:
	//   "IN_SYNC" - No pending configuration update proposals to the  peering
	// connection.
	//   "PENDING_LOCAL_ACKNOWLEDMENT" - The peer network admin has made an
	// updatePeering call. The change is
	// awaiting acknowledgment from this peering's network admin.
	//   "PENDING_PEER_ACKNOWLEDGEMENT" - The local network admin has made an
	// updatePeering call. The change
	// is awaiting acknowledgment from the peer network admin.
	//   "UPDATE_STATUS_UNSPECIFIED"
	UpdateStatus string `json:"updateStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeleteStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeleteStatus") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type NetworkPeeringConnectionStatusTrafficConfiguration struct {
	// ExportCustomRoutesToPeer: Whether custom routes are being exported to the
	// peer network.
	ExportCustomRoutesToPeer bool `json:"exportCustomRoutesToPeer,omitempty"`
	// ExportSubnetRoutesWithPublicIpToPeer: Whether subnet routes with public IP
	// ranges are being exported to the
	// peer network.
	ExportSubnetRoutesWithPublicIpToPeer bool `json:"exportSubnetRoutesWithPublicIpToPeer,omitempty"`
	// ImportCustomRoutesFromPeer: Whether custom routes are being imported from
	// the peer network.
	ImportCustomRoutesFromPeer bool `json:"importCustomRoutesFromPeer,omitempty"`
	// ImportSubnetRoutesWithPublicIpFromPeer: Whether subnet routes with public IP
	// ranges are being imported
	// from the peer network.
	ImportSubnetRoutesWithPublicIpFromPeer bool `json:"importSubnetRoutesWithPublicIpFromPeer,omitempty"`
	// StackType: Which IP version(s) of traffic and routes are being imported
	// or
	// exported between peer networks.
	//
	// 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"`
	// ForceSendFields is a list of field names (e.g. "ExportCustomRoutesToPeer")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExportCustomRoutesToPeer") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type NetworkPerformanceConfig struct {
	// Possible values:
	//   "DEFAULT"
	//   "TIER_1"
	TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TotalEgressBandwidthTier")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TotalEgressBandwidthTier") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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)
}

// NetworkProfile: NetworkProfile represents a Google managed network profile
// resource.
type NetworkProfile struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: Output only. [Output Only] An optional description of this
	// resource.
	Description string `json:"description,omitempty"`
	// Features: Output only. [Output Only] Features supported by the network.
	Features *NetworkProfileNetworkFeatures `json:"features,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#networkProfile for network profiles.
	Kind string `json:"kind,omitempty"`
	// Location: Output only. [Output Only] Location to which the network is
	// restricted.
	Location *NetworkProfileLocation `json:"location,omitempty"`
	// Name: Output only. [Output Only] Name of the resource.
	Name string `json:"name,omitempty"`
	// ProfileType: Output only. [Output Only] Type of the network profile.
	ProfileType *NetworkProfileProfileType `json:"profileType,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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 NetworkProfile) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfile
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworkProfileLocation struct {
	Name string `json:"name,omitempty"`
	// Possible values:
	//   "REGION"
	//   "ZONE"
	Scope string `json:"scope,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 NetworkProfileLocation) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfileLocation
	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 forGLOBAL 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"`
	// AllowAddressCreation: Specifies whether address creation is allowed.
	//
	// Possible values:
	//   "ADDRESS_CREATION_ALLOWED"
	//   "ADDRESS_CREATION_BLOCKED"
	AllowAddressCreation string `json:"allowAddressCreation,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"`
	// AllowDefaultNicAttachment: Specifies whether default NIC attachment is
	// allowed.
	//
	// Possible values:
	//   "DEFAULT_NIC_ATTACHMENT_ALLOWED"
	//   "DEFAULT_NIC_ATTACHMENT_BLOCKED"
	AllowDefaultNicAttachment string `json:"allowDefaultNicAttachment,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"`
	// AllowFirewallPolicy: Specifies whether firewall policy can be attached to
	// the network.
	//
	// Possible values:
	//   "FIREWALL_POLICY_ALLOWED"
	//   "FIREWALL_POLICY_BLOCKED"
	AllowFirewallPolicy string `json:"allowFirewallPolicy,omitempty"`
	// AllowInterconnect: Specifies whether Cloud Interconnect creation is allowed.
	//
	// Possible values:
	//   "INTERCONNECT_ALLOWED"
	//   "INTERCONNECT_BLOCKED"
	AllowInterconnect string `json:"allowInterconnect,omitempty"`
	// AllowIpForwarding: Specifies whether IP forwarding is allowed.
	//
	// Possible values:
	//   "IP_FORWARDING_ALLOWED"
	//   "IP_FORWARDING_BLOCKED"
	AllowIpForwarding string `json:"allowIpForwarding,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"`
	// AllowMultiNicInSameSubnetwork: Specifies whether multi-nic in the same
	// subnetwork is allowed.
	//
	// Possible values:
	//   "MULTI_NIC_IN_SAME_SUBNETWORK_ALLOWED"
	//   "MULTI_NIC_IN_SAME_SUBNETWORK_BLOCKED"
	AllowMultiNicInSameSubnetwork string `json:"allowMultiNicInSameSubnetwork,omitempty"`
	// AllowMulticast: Specifies whether multicast is allowed.
	//
	// Possible values:
	//   "MULTICAST_ALLOWED"
	//   "MULTICAST_BLOCKED"
	AllowMulticast string `json:"allowMulticast,omitempty"`
	// AllowNcc: Specifies whether NCC is allowed.
	//
	// Possible values:
	//   "NCC_ALLOWED"
	//   "NCC_BLOCKED"
	AllowNcc string `json:"allowNcc,omitempty"`
	// AllowNetworkMigration: Specifies whether VM network migration is allowed.
	//
	// Possible values:
	//   "NETWORK_MIGRATION_ALLOWED"
	//   "NETWORK_MIGRATION_BLOCKED"
	AllowNetworkMigration string `json:"allowNetworkMigration,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"`
	// AllowSubnetworkCreation: Specifies whether subnetwork creation is allowed.
	//
	// Possible values:
	//   "SUBNETWORK_CREATION_ALLOWED"
	//   "SUBNETWORK_CREATION_BLOCKED"
	AllowSubnetworkCreation string `json:"allowSubnetworkCreation,omitempty"`
	// AllowVpcFirewallRules: Specifies whether VPC firewall rules can be created
	// under the network.
	//
	// Possible values:
	//   "VPC_FIREWALL_RULES_ALLOWED"
	//   "VPC_FIREWALL_RULES_BLOCKED"
	AllowVpcFirewallRules string `json:"allowVpcFirewallRules,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"`
	// Possible values:
	//   "RDMA_ROCE_POLICY"
	//   "ULL_POLICY"
	//   "VPC_POLICY"
	FirewallPolicyTypes []string `json:"firewallPolicyTypes,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
	//   "IRDMA" - IRDMA
	//   "MRDMA" - MRDMA
	//   "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"`
	// PredefinedNetworkInternalIpv6Range: Specifies a predefined internal IPv6
	// range for the network.
	PredefinedNetworkInternalIpv6Range string `json:"predefinedNetworkInternalIpv6Range,omitempty"`
	// PredefinedSubnetworkRanges: Predefined subnetwork ranges for the network.
	PredefinedSubnetworkRanges []*NetworkProfileNetworkFeaturesPredefinedSubnetworkRange `json:"predefinedSubnetworkRanges,omitempty"`
	// SubnetPurposes: Specifies which subnetwork purposes are supported.
	//
	// Possible values:
	//   "SUBNET_PURPOSE_CUSTOM_HARDWARE"
	//   "SUBNET_PURPOSE_PRIVATE"
	SubnetPurposes []string `json:"subnetPurposes,omitempty"`
	// SubnetStackTypes: Specifies which subnetwork stack types are supported.
	//
	// Possible values:
	//   "SUBNET_STACK_TYPE_IPV4_IPV6"
	//   "SUBNET_STACK_TYPE_IPV4_ONLY"
	//   "SUBNET_STACK_TYPE_IPV6_ONLY"
	SubnetStackTypes []string `json:"subnetStackTypes,omitempty"`
	// SubnetworkPurposes: Output only. Specifies which subnetwork purposes are
	// supported.
	//
	// Possible values:
	//   "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.
	//   "PEER_MIGRATION" - Subnetwork will be used for Migration from one peered
	// VPC to another.
	// (a transient state of subnetwork
	// while migrating resources from one project to another).
	//   "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.
	SubnetworkPurposes []string `json:"subnetworkPurposes,omitempty"`
	// SubnetworkStackTypes: Output only. Specifies which subnetwork stack types
	// are supported.
	//
	// 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.
	SubnetworkStackTypes []string `json:"subnetworkStackTypes,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)
}

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

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

type NetworkProfileProfileType struct {
	// Possible values:
	//   "RDMA" - RDMA network.
	//   "ULL" - ULL network.
	//   "VPC" - VPC network.
	NetworkType string `json:"networkType,omitempty"`
	// Possible values:
	//   "FALCON" - RDMA over Falcon.
	//   "ROCE" - RDMA over Converged Ethernet (RoCE).
	//   "ROCE_METAL" - RDMA over Converged Ethernet (RoCE) for Bare Metal.
	RdmaSubtype string `json:"rdmaSubtype,omitempty"`
	// Possible values:
	//   "OPERATOR" - Exchange operator.
	//   "PARTICIPANT" - Exchange participant.
	UllSubtype string `json:"ullSubtype,omitempty"`
	// Possible values:
	//   "REGIONAL" - Regionally bound VPC network.
	VpcSubtype string `json:"vpcSubtype,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NetworkType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NetworkType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s NetworkProfileProfileType) MarshalJSON() ([]byte, error) {
	type NoMethod NetworkProfileProfileType
	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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 orADD_COST_TO_MED.
	//
	// Possible values:
	//   "ADD_COST_TO_MED"
	//   "DEFAULT"
	BgpInterRegionCost string `json:"bgpInterRegionCost,omitempty"`
	// EffectiveBgpAlwaysCompareMed: Output only. [Output Only] Effective value of
	// the bgp_always_compare_med
	// field.
	EffectiveBgpAlwaysCompareMed bool `json:"effectiveBgpAlwaysCompareMed,omitempty"`
	// EffectiveBgpInterRegionCost: Output only. [Output Only] Effective value of
	// the bgp_inter_region_cost
	// field.
	//
	// Possible values:
	//   "ADD_COST_TO_MED"
	//   "DEFAULT"
	EffectiveBgpInterRegionCost string `json:"effectiveBgpInterRegionCost,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 toGLOBAL, 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.
	// Useexchange_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 isACTIVE.
	AutoCreateRoutes bool `json:"autoCreateRoutes,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 NetworksCancelRequestRemovePeeringRequest 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 NetworksCancelRequestRemovePeeringRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksCancelRequestRemovePeeringRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworksGetEffectiveFirewallsResponse struct {
	// FirewallPolicys: [Output Only] Effective firewalls from firewall policy. It
	// returns Global
	// Network Firewall Policies and Hierarchical Firewall Policies.
	// UseregionNetworkFirewallPolicies.getEffectiveFirewalls to get
	// Regional Network Firewall Policies as well.
	FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `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 NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksGetEffectiveFirewallsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
	// DisplayName: Output only. [Output Only] Deprecated, please use short name
	// instead. The display name
	// of the firewall policy.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Output only. [Output Only] The name of the firewall policy.
	Name string `json:"name,omitempty"`
	// PacketMirroringRules: Output only. [Output Only] The packet mirroring rules
	// that apply to the network.
	PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"`
	// Priority: Output only. [Output only] Priority of firewall policy
	// association. Not applicable for
	// type=HIERARCHY.
	Priority int64 `json:"priority,omitempty"`
	// Rules: [Output Only] The rules that apply to the network.
	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
	// ShortName: Output only. [Output Only] The short name of the firewall policy.
	ShortName string `json:"shortName,omitempty"`
	// Type: Output only. [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)
}

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 NetworksRequestRemovePeeringRequest 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 NetworksRequestRemovePeeringRequest) MarshalJSON() ([]byte, error) {
	type NoMethod NetworksRequestRemovePeeringRequest
	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, readSole-tenant nodes.
type NodeGroup struct {
	// AutoscalingPolicy: Specifies how autoscaling should behave.
	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] The type of the resource.
	// Alwayscompute#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 andRECURRENT
	// options.
	//   "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 forAS_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
	// withRFC1035.
	// 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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// ShareSettings: Share-settings for the node group
	ShareSettings *ShareSettings `json:"shareSettings,omitempty"`
	// Size: Output only. [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. [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. [Output Only] Type of
	// resource.Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 {
	// MaintenanceDuration: Output only. [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. "MaintenanceDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaintenanceDuration") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values 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: Output only. 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: Output only. 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. [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: Output only. Total amount of available resources on the
	// node.
	TotalResources *InstanceConsumptionInfo `json:"totalResources,omitempty"`
	// UpcomingMaintenance: Output only. [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. [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. [Output Only] The resource type, which is
	// alwayscompute.nodeGroupsListNodes for the list of nodes in the
	// specified node group.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, readCreating 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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] The type of the resource.
	// Alwayscompute#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
	// withRFC1035.
	// 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. [Output Only] The name of the region where the node
	// template resides,
	// such as us-central1.
	Region string `json:"region,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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. [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. [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. [Output Only] Type of
	// resource.Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
// readNode 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 inRFC3339
	// 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. [Output Only] The type of the resource.
	// Alwayscompute#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"`
	// MaxVms: Output only. [Output Only] Maximum number of VMs that can be created
	// for this node type.
	MaxVms int64 `json:"maxVms,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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Zone: Output only. [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. [Output Only] Type of
	// resource.Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] A unique identifier for this resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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. [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. [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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of the resource.
	// Alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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/v1/globalOperations)
// * Regional (/compute/docs/reference/rest/v1/regionOperations)
// * Zonal (/compute/docs/reference/rest/v1/zoneOperations)
//
// You can use an operation resource to manage asynchronous API requests.
// For more information, readHandling
// 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 inRFC3339
	// 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"`
	GetVersionOperationMetadata *GetVersionOperationMetadata `json:"getVersionOperationMetadata,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 inRFC3339
	// text format.
	InsertTime                           string                                `json:"insertTime,omitempty"`
	InstancesBulkInsertOperationMetadata *InstancesBulkInsertOperationMetadata `json:"instancesBulkInsertOperationMetadata,omitempty"`
	// Kind: Output only. [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. [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"`
	// SetCommonInstanceMetadataOperationMetadata: Output only. [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 inRFC3339
	// 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 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of securityPolicy associations.
	// Alwayscompute#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)
}

// 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, seeUsing Packet
// Mirroring.
type PacketMirroring struct {
	// CollectorIlb: The Forwarding Rule resource of
	// typeloadBalancingScheme=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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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. [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. "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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// 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 BackendServiceorBackendBucket 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 likeRouteRule and
	// PathRule within thisPathMatcher. 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 a404 is encountered, the
	// policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404
	// response is encountered for the requestwww.example.com/current_events/, the
	// pathMatcher's policy
	// takes effect. If however, the request forwww.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 atUrlMap.defaultCustomErrorResponsePolicy takes
	// effect.
	//
	// When
	// used in conjunction withpathMatcher.defaultRouteAction.retryPolicy, retries
	// take
	// precedence. Only once all retries are exhausted,
	// thedefaultCustomErrorResponsePolicy 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.
	//
	//
	// Only one of defaultUrlRedirect, defaultService
	// or defaultRouteAction.weightedBackendService can be set.
	//
	//
	// URL maps for classic Application Load Balancers only support
	// the urlRewrite action within a path matcher'sdefaultRouteAction.
	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
	// DefaultService: The full or partial URL to the BackendService resource.
	// This
	// URL is used if none of the pathRules orrouteRules 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.
	//
	//
	// Only one of defaultUrlRedirect, defaultService
	// or defaultRouteAction.weightedBackendService can be set.
	//
	//
	// 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 orrouteRules match,
	// the request is redirected to a URL specified
	// by defaultUrlRedirect.
	//
	//
	// Only one of defaultUrlRedirect, defaultService
	// or defaultRouteAction.weightedBackendService can 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"`
	// 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 matchingHttpRouteRule
	// HeaderAction and before theHeaderAction 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 theHostRule.
	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. A
	// path
	// rule can only include a wildcard character (*) after a
	// forward slash character ("/").
	//
	// 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 ofpathRules or routeRules must be set.
	PathRules []*PathRule `json:"pathRules,omitempty"`
	// RouteRules: The list of HTTP route rules. Use this list instead ofpathRules
	// 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 ofpathRules 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
// specifiedBackendService to handle the traffic arriving at this URL.
type PathRule struct {
	// CustomErrorResponsePolicy: customErrorResponsePolicy specifies how the
	// Load
	// Balancer returns error responses when BackendServiceorBackendBucket responds
	// with an error.
	//
	// If a policy for an
	// error code is not configured for the PathRule, a policy for
	// the error code configured inpathMatcher.defaultCustomErrorResponsePolicy is
	// applied. If
	// one is not specified inpathMatcher.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 a404 is encountered, the
	// policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404
	// response is encountered for the requestwww.example.com/current_events/, the
	// pathMatcher's policy
	// takes effect. If however, the request forwww.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 atUrlMap.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.
	//
	//
	// Only one of urlRedirect, service orrouteAction.weightedBackendService can be
	// set.
	//
	//
	// URL maps for classic Application Load Balancers only support
	// the urlRewrite action within a path rule'srouteAction.
	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.
	//
	//
	// Only one of urlRedirect, service orrouteAction.weightedBackendService can be
	// set.
	Service string `json:"service,omitempty"`
	// UrlRedirect: When a path pattern is matched, the request is redirected to a
	// URL
	// specified by urlRedirect.
	//
	//
	// Only one of urlRedirect, service orrouteAction.weightedBackendService can 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)
}

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
	// configuration 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)
}

// 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"`
	// 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 orREAD_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 inREAD_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)
}

// PreviewFeature: Represents a single Google Compute Engine preview feature.
type PreviewFeature struct {
	// ActivationStatus: Specifies whether the feature is enabled or disabled.
	//
	// Possible values:
	//   "ACTIVATION_STATE_UNSPECIFIED"
	//   "DISABLED"
	//   "ENABLED"
	ActivationStatus string `json:"activationStatus,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: Output only. [Output Only] Description of the feature.
	Description string `json:"description,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output only] The type of the feature. Always
	// "compute#previewFeature" for
	// preview features.
	Kind string `json:"kind,omitempty"`
	// Name: Name of the feature.
	Name string `json:"name,omitempty"`
	// RolloutOperation: Rollout operation of the feature.
	RolloutOperation *PreviewFeatureRolloutOperation `json:"rolloutOperation,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Status: Output only. [Output only] Status of the feature.
	Status *PreviewFeatureStatus `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. "ActivationStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActivationStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type PreviewFeatureList 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 PreviewFeature resources.
	Items []*PreviewFeature `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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable
	// resources.
	// end_interface: MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *PreviewFeatureListWarning `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 PreviewFeatureList) MarshalJSON() ([]byte, error) {
	type NoMethod PreviewFeatureList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PreviewFeatureListWarning: [Output Only] Informational warning message.
type PreviewFeatureListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*PreviewFeatureListWarningData `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 PreviewFeatureListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod PreviewFeatureListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type PreviewFeatureListWarningData 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 PreviewFeatureListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod PreviewFeatureListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// PreviewFeatureRolloutOperationRolloutInput: Represents the input for the
// rollout operation.
type PreviewFeatureRolloutOperationRolloutInput struct {
	// Name: The name of the rollout
	// plan
	// Ex.
	// organizations//locations/global/rolloutPlans/
	// Ex.
	// folders//locations/global/rolloutPlans/
	// Ex.
	// projects//locations/global/rolloutPlans/.
	Name string `json:"name,omitempty"`
	// PredefinedRolloutPlan: Predefined rollout plan.
	//
	// Possible values:
	//   "ROLLOUT_PLAN_FAST_ROLLOUT"
	//   "ROLLOUT_PLAN_TWO_DAY_ROLLOUT"
	//   "ROLLOUT_PLAN_UNSPECIFIED"
	PredefinedRolloutPlan string `json:"predefinedRolloutPlan,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 PreviewFeatureRolloutOperationRolloutInput) MarshalJSON() ([]byte, error) {
	type NoMethod PreviewFeatureRolloutOperationRolloutInput
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PreviewFeatureStatus: [Output Only] The status of the feature.
type PreviewFeatureStatus struct {
	// Description: Output only. [Output Only] The description of the feature.
	Description string `json:"description,omitempty"`
	// HelpLink: Output only. [Output Only] Link to the public documentation for
	// the feature.
	HelpLink      string                             `json:"helpLink,omitempty"`
	ReleaseStatus *PreviewFeatureStatusReleaseStatus `json:"releaseStatus,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 PreviewFeatureStatus) MarshalJSON() ([]byte, error) {
	type NoMethod PreviewFeatureStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// PreviewFeatureStatusReleaseStatus: [Output Only] The release status of the
// feature.
type PreviewFeatureStatusReleaseStatus struct {
	// Stage: Output only. [Output Only] The stage of the feature.
	//
	// Possible values:
	//   "DEPRECATED"
	//   "GA"
	//   "PREVIEW"
	//   "STAGE_UNSPECIFIED"
	Stage string `json:"stage,omitempty"`
	// UpdateDate: Output only. The last date when a feature transitioned between
	// ReleaseStatuses.
	UpdateDate *Date `json:"updateDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Stage") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Stage") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s PreviewFeatureStatusReleaseStatus) MarshalJSON() ([]byte, error) {
	type NoMethod PreviewFeatureStatusReleaseStatus
	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. [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 beCA_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 inRFC3339
	// 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.
	//   "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: An optional list of 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. [Output Only] Type of the resource. Always
	// compute#project for
	// projects.
	Kind string `json:"kind,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: An optional naming prefix for daily usage reports and
	// the Google Cloud
	// Storage bucket where they are stored.
	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
	// VmDnsSetting: Output only. [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. [Output Only] Type of resource.
	// Alwayscompute#projectsGetXpnResources for lists of service resources
	// (a.k.a service projects)
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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"`
	// 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.
	//   "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)
}

// 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. [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. [Output Only] Creation timestamp
	// inRFC3339
	// 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 thePublicAdvertisedPrefix,
	// 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. [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"`
	// Ipv6AccessType: The internet access type for IPv6 Public Advertised
	// Prefixes.
	//
	// Possible values:
	//   "EXTERNAL" - Default IPv6 access type. The prefix will be announced to the
	// internet.
	// All children Public Delegated Prefixes will have IPv6 access type
	// as
	// EXTERNAL.
	//   "INTERNAL" - The prefix will not be announced to the internet. Prefix will
	// be used
	// privately within Cloud. All children Public Delegated Prefixes
	// will have IPv6 access type as INTERNAL.
	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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. [Output Only] The list of public
	// delegated prefixes that exist for this
	// public advertised prefix.
	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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. [Output Only] Type of the resource.
	// Alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// EnableEnhancedIpv4Allocation: Output only. [Output Only] Whether this PDP
	// supports enhanced IPv4 allocations.
	// Applicable for IPv4 PDPs only.
	EnableEnhancedIpv4Allocation bool `json:"enableEnhancedIpv4Allocation,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 thePublicDelegatedPrefix,
	// 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. [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"`
	// Ipv6AccessType: Output only. [Output Only] The internet access type for IPv6
	// Public Delegated Prefixes.
	// Inherited from parent prefix.
	//
	// Possible values:
	//   "EXTERNAL" - The parent public advertised prefix will be announced to the
	// internet.
	// All children public delegated prefixes will have IPv6 access type
	// as
	// EXTERNAL.
	//   "INTERNAL" - The parent public advertised prefix will not be announced to
	// the
	// internet. Prefix will be used privately within Cloud. All children
	// public delegated prefixes will have IPv6 access type as INTERNAL.
	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
	// IsLiveMigration: If true, the prefix will be live migrated.
	IsLiveMigration bool `json:"isLiveMigration,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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. Parent public
	// delegated prefix must have IPv6 access type as EXTERNAL.
	//   "EXTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used
	// for creating dual-mode subnetworks
	// only. Such prefixes cannot set publicDelegatedSubPrefixes. Parent
	// public
	// delegated prefix must have IPv6 access type as EXTERNAL.
	//   "INTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used
	// for creating dual stack or IPv6-only
	// subnetwork with internal access only. Such prefixes cannot
	// set
	// publicDelegatedSubPrefixes and allocatablePrefixLength. Parent
	// public
	// delegated prefix must have IPv6 access type as INTERNAL.
	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 withRFC1035.
	// 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. [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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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 announced and ready to
	//      use.
	//      - `DELETING` The public delegated prefix is being deprovsioned.
	//      - `ACTIVE` The public delegated prefix is ready to use.
	//
	// Possible values:
	//   "ACTIVE" - The public delegated prefix is ready to use.
	//   "ANNOUNCED" - The public delegated prefix is announced and ready to use.
	//   "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. [Output Only] Type of the resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of the resource.
	// Alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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"`
	// EnableEnhancedIpv4Allocation: Output only. [Output Only] Whether this PDP
	// supports enhanced IPv4 allocations.
	// Applicable for IPv4 PDPs only.
	EnableEnhancedIpv4Allocation bool `json:"enableEnhancedIpv4Allocation,omitempty"`
	// IpCidrRange: The IP address range, in CIDR format, represented by this sub
	// public
	// delegated prefix.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// Ipv6AccessType: Output only. [Output Only] The internet access type for IPv6
	// Public Delegated Sub
	// Prefixes. Inherited from parent prefix.
	//
	// Possible values:
	//   "EXTERNAL" - The parent public advertised prefix will be announced to the
	// internet.
	// All children public delegated prefixes will have IPv6 access type
	// as
	// EXTERNAL.
	//   "INTERNAL" - The parent public advertised prefix will not be announced to
	// the
	// internet. Prefix will be used privately within Cloud. All children
	// public delegated prefixes will have IPv6 access type as INTERNAL.
	Ipv6AccessType string `json:"ipv6AccessType,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. Parent public
	// delegated prefix must have IPv6 access type as EXTERNAL.
	//   "EXTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used
	// for creating dual-mode subnetworks
	// only. Such prefixes cannot set publicDelegatedSubPrefixes. Parent
	// public
	// delegated prefix must have IPv6 access type as EXTERNAL.
	//   "INTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used
	// for creating dual stack or IPv6-only
	// subnetwork with internal access only. Such prefixes cannot
	// set
	// publicDelegatedSubPrefixes and allocatablePrefixLength. Parent
	// public
	// delegated prefix must have IPv6 access type as INTERNAL.
	Mode string `json:"mode,omitempty"`
	// Name: The name of the sub public delegated prefix.
	Name string `json:"name,omitempty"`
	// Region: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// 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"
	//   "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_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_V5"
	//   "PREEMPTIBLE_TPU_LITE_PODSLICE_V5"
	//   "PREEMPTIBLE_TPU_PODSLICE_V4"
	//   "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK"
	//   "PSC_INTERNAL_LB_FORWARDING_RULES"
	//   "PUBLIC_ADVERTISED_PREFIXES"
	//   "PUBLIC_DELEGATED_PREFIXES"
	//   "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_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
}

// Reference: Represents a reference to a resource.
type Reference struct {
	// Kind: Output only. [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, readRegions
// and Zones.
type Region struct {
	// CreationTimestamp: [Output Only] Creation timestamp inRFC3339
	// 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. [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. [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"`
	// Status: [Output Only] Status of the region, either UP orDOWN.
	//
	// Possible values:
	//   "DOWN"
	//   "UP"
	Status string `json:"status,omitempty"`
	// SupportsPzs: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 RegionDiskUpdateKmsKeyRequest struct {
	// KmsKeyName: Optional. The new KMS key to replace the current one on the
	// disk. If empty, the disk
	// will be re-encrypted using the primary version of the disk's current
	// KMS
	// key.
	//
	// The KMS key can be provided in the following formats:
	//
	//
	//      -
	// projects/project_id/locations/location/keyRings/key_ring/cryptoKeys/key
	//
	//
	// Where project is the project ID or
	// project number.
	KmsKeyName string `json:"kmsKeyName,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 RegionDiskUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionDiskUpdateKmsKeyRequest
	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. [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.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

type RegionInstanceGroupManagerResizeRequestsListResponse 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 Resize Request resources.
	Items []*InstanceGroupManagerResizeRequest `json:"items,omitempty"`
	// Kind: Output only. Type of the resource.
	// Alwayscompute#regionInstanceGroupManagerResizeRequestList 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 thanmaxResults, 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 *RegionInstanceGroupManagerResizeRequestsListResponseWarning `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 RegionInstanceGroupManagerResizeRequestsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerResizeRequestsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RegionInstanceGroupManagerResizeRequestsListResponseWarning: Output only.
// Informational warning message.
type RegionInstanceGroupManagerResizeRequestsListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*RegionInstanceGroupManagerResizeRequestsListResponseWarningData `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 RegionInstanceGroupManagerResizeRequestsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerResizeRequestsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RegionInstanceGroupManagerResizeRequestsListResponseWarningData 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 RegionInstanceGroupManagerResizeRequestsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RegionInstanceGroupManagerResizeRequestsListResponseWarningData
	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
	// aszones/[ZONE]/instances/[INSTANCE_NAME].
	Instances []string `json:"instances,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. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] The list of PerInstanceConfig.
	Items []*PerInstanceConfig `json:"items,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [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.
// [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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 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 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
	// theinstanceGroup 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. [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.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	// theinstanceGroups.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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. [Output only] Effective firewalls from
	// firewall policy. It applies to
	// Regional Network Firewall Policies in the specified region, Global
	// Network
	// Firewall Policies and Hierachial Firewall Policies which are associated
	// with the network.
	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. [Output Only] The display name of the firewall
	// policy.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Output only. [Output Only] The name of the firewall policy.
	Name string `json:"name,omitempty"`
	// PacketMirroringRules: Output only. [Output only] The packet mirroring rules
	// that apply to the network.
	PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"`
	// Priority: Output only. [Output only] Priority of firewall policy
	// association. Not applicable for
	// type=HIERARCHY.
	Priority int64 `json:"priority,omitempty"`
	// Rules: Output only. [Output only] The rules that apply to the network.
	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
	// Type: Output only. [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 RegionSnapshotUpdateKmsKeyRequest struct {
	// KmsKeyName: Optional. The new KMS key to replace the current one on the
	// snapshot. If empty, the
	// snapshot will be re-encrypted using the primary version of the
	// snapshot's
	// current KMS key.
	//
	// The KMS key can be provided in the following formats:
	//
	//
	//      - projects/project_id/locations/region/keyRings/region/cryptoKeys/key
	KmsKeyName string `json:"kmsKeyName,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 RegionSnapshotUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod RegionSnapshotUpdateKmsKeyRequest
	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"`
	// MirrorPercent: The percentage of requests to be mirrored to
	// `backend_service`.
	MirrorPercent float64 `json:"mirrorPercent,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)
}

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

// 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 {
	// AdvancedDeploymentControl: Advanced control for cluster management,
	// applicable only to DENSE
	// deployment type reservations.
	AdvancedDeploymentControl *ReservationAdvancedDeploymentControl `json:"advancedDeploymentControl,omitempty"`
	// AggregateReservation: Reservation for aggregated resources, providing shape
	// flexibility.
	AggregateReservation *AllocationAggregateReservation `json:"aggregateReservation,omitempty"`
	// Commitment: Output only. [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"`
	// Possible values:
	//   "CONFIDENTIAL_COMPUTE_TYPE_TDX" - Intel Trust Domain Extensions.
	//   "CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED"
	ConfidentialComputeType string `json:"confidentialComputeType,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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 inRFC3339 text
	// format.
	DeleteAtTime string `json:"deleteAtTime,omitempty"`
	// DeploymentType: Specifies the deployment strategy for this reservation.
	//
	// Possible values:
	//   "DENSE" - The reserved capacity is made up of densely deployed reservation
	// blocks.
	//   "DEPLOYMENT_TYPE_UNSPECIFIED"
	DeploymentType string `json:"deploymentType,omitempty"`
	// Description: An optional description of this resource. Provide this property
	// when you
	// create the resource.
	Description string `json:"description,omitempty"`
	// EarlyAccessMaintenance: Indicates the early access maintenance for the
	// reservation.
	// If this field is absent or set to NO_EARLY_ACCESS, the reservation is
	// not
	// enrolled in early access maintenance and the standard notice applies.
	//
	// Possible values:
	//   "NO_EARLY_ACCESS" - No early access.
	//   "WAVE1" - Wave 1: Fastest notification period
	//   "WAVE2" - Wave 2: Medium notification period
	EarlyAccessMaintenance string `json:"earlyAccessMaintenance,omitempty"`
	// EnableEmergentMaintenance: Indicates whether Compute Engine allows unplanned
	// maintenance for your VMs;
	// for example, to fix hardware errors.
	EnableEmergentMaintenance bool `json:"enableEmergentMaintenance,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#reservations for reservations.
	Kind string `json:"kind,omitempty"`
	// LinkedCommitments: Output only. [Output Only] Full or partial URL to parent
	// commitments. This field
	// displays for reservations that are tied to multiple commitments.
	LinkedCommitments []string `json:"linkedCommitments,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
	// withRFC1035.
	// 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"`
	// Params: Input only. Additional params passed with the request, but not
	// persisted
	// as part of resource payload.
	Params *ReservationParams `json:"params,omitempty"`
	// ProtectionTier: Protection tier for the workload which specifies the
	// workload expectations
	// in the event of infrastructure failures at data center (e.g. power
	// and/or cooling failures).
	//
	// Possible values:
	//   "CAPACITY_OPTIMIZED" - CAPACITY_OPTIMIZED capacity leverages redundancies
	// (e.g. power, cooling)
	// at the data center during normal operating conditions. In the event
	// of
	// infrastructure failures at data center (e.g. power and/or cooling
	// failures), this workload may be disrupted. As a consequence, it has a
	// weaker availability SLO than STANDARD.
	//   "PROTECTION_TIER_UNSPECIFIED" - Unspecified protection tier.
	//   "STANDARD" - STANDARD protection for workload that should be protected by
	// redundancies
	// (e.g. power, cooling) at the data center level. In the event
	// of
	// infrastructure failures at data center (e.g. power and/or cooling
	// failures), this workload is expected to continue as normal using
	// the
	// redundancies.
	ProtectionTier string `json:"protectionTier,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. [Output Only] Status information for
	// Reservation resource.
	ResourceStatus *AllocationResourceStatus `json:"resourceStatus,omitempty"`
	// SatisfiesPzs: Output only. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SchedulingType: The type of maintenance for the reservation.
	//
	// Possible values:
	//   "GROUPED" - Maintenance on all reserved instances in the reservation is
	// synchronized.
	//   "GROUP_MAINTENANCE_TYPE_UNSPECIFIED" - Unknown maintenance type.
	//   "INDEPENDENT" - Maintenance is not synchronized for this reservation.
	// Instead, each
	// instance has its own maintenance window.
	SchedulingType string `json:"schedulingType,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,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. [Output Only] The status of the reservation.
	//
	//
	//      - CREATING: Reservation resources are being
	//        allocated.
	//      - READY: Reservation resources have been allocated,
	//        and the reservation is ready for use.
	//      - DELETING: Reservation deletion is in progress.
	//      - UPDATING: Reservation update is in progress.
	//
	// Possible values:
	//   "CREATING" - Reservation resources are being allocated.
	//   "DELETING" - Reservation deletion is in progress.
	//   "INVALID"
	//   "READY" - Reservation resources have been allocated, and the reservation
	// is ready
	// for use.
	//   "UPDATING" - Reservation update is in progress.
	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. "AdvancedDeploymentControl")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvancedDeploymentControl") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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)
}

// ReservationAdvancedDeploymentControl: Advance control for cluster
// management, applicable only to DENSE deployment
// type reservations.
type ReservationAdvancedDeploymentControl struct {
	// ReservationOperationalMode: Indicates chosen reservation operational mode
	// for the reservation.
	//
	// Possible values:
	//   "ALL_CAPACITY" - Google Cloud does not manage the failure of machines, but
	// provides
	// additional capacity, which is not guaranteed to be available.
	//   "HIGHLY_AVAILABLE_CAPACITY" - Google Cloud manages the failure of machines
	// to provide high
	// availability.
	//   "RESERVATION_OPERATIONAL_MODE_UNSPECIFIED"
	ReservationOperationalMode string `json:"reservationOperationalMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ReservationOperationalMode")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReservationOperationalMode") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationAdvancedDeploymentControl) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationAdvancedDeploymentControl
	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.
	//   "UNSPECIFIED"
	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
	// Key: Corresponds to the label key of a reservation resource. To target
	// aSPECIFIC_RESERVATION by name, specifygoogleapis.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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// ReservationBlock: Represents a reservation block resource.
type ReservationBlock struct {
	// Count: Output only. [Output Only] The number of resources that are allocated
	// in this
	// reservation block.
	Count int64 `json:"count,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// HealthInfo: Output only. [Output Only] Health information for the
	// reservation block.
	HealthInfo *ReservationBlockHealthInfo `json:"healthInfo,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InUseCount: Output only. [Output Only] The number of instances that are
	// currently in use on this
	// reservation block.
	InUseCount int64 `json:"inUseCount,omitempty"`
	// InUseHostCount: Output only. Number of hosts currently in use. If there is
	// one or more Instances running
	// on the host, it is considered in use.
	InUseHostCount int64 `json:"inUseHostCount,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#reservationBlock for reservation blocks.
	Kind string `json:"kind,omitempty"`
	// Name: Output only. [Output Only] The name of this reservation block
	// generated by Google
	// Compute Engine. The name must be 1-63 characters long, and comply
	// with
	// RFC1035 @pattern a-z (?:[-a-z0-9]{0,61}[a-z0-9])?
	Name string `json:"name,omitempty"`
	// PhysicalTopology: Output only. [Output Only] The physical topology of the
	// reservation block.
	PhysicalTopology *ReservationBlockPhysicalTopology `json:"physicalTopology,omitempty"`
	// ReservationMaintenance: Output only. [Output Only] Maintenance information
	// for this reservation block.
	ReservationMaintenance *GroupMaintenanceInfo `json:"reservationMaintenance,omitempty"`
	// ReservationSubBlockCount: Output only. [Output Only] The number of
	// reservation subBlocks associated with this
	// reservation block.
	ReservationSubBlockCount int64 `json:"reservationSubBlockCount,omitempty"`
	// ReservationSubBlockInUseCount: Output only. [Output Only] The number of
	// in-use reservation subBlocks associated with
	// this reservation block. If at least one VM is running on a subBlock, it
	// is
	// considered in-use.
	ReservationSubBlockInUseCount int64 `json:"reservationSubBlockInUseCount,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource with the resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: Output only. [Output Only] Status of the reservation block.
	//
	// Possible values:
	//   "CREATING" - Resources are being allocated for the reservation block.
	//   "DELETING" - Reservation block is currently being deleted.
	//   "INVALID"
	//   "READY" - Reservation block has allocated all its resources.
	Status string `json:"status,omitempty"`
	// Zone: Output only. [Output Only] Zone in which the reservation block
	// resides.
	Zone string `json:"zone,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 ReservationBlock) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationBlock
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationBlockHealthInfo: Health information for the reservation block.
type ReservationBlockHealthInfo struct {
	// DegradedSubBlockCount: The number of subBlocks that are degraded.
	DegradedSubBlockCount int64 `json:"degradedSubBlockCount,omitempty"`
	// HealthStatus: The health status of the reservation block.
	//
	// Possible values:
	//   "DEGRADED" - The reservation block is degraded.
	//   "HEALTHY" - The reservation block is healthy.
	//   "HEALTH_STATUS_UNSPECIFIED" - The health status of the reservation block
	// is unspecified.
	HealthStatus string `json:"healthStatus,omitempty"`
	// HealthySubBlockCount: The number of subBlocks that are healthy.
	HealthySubBlockCount int64 `json:"healthySubBlockCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DegradedSubBlockCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DegradedSubBlockCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ReservationBlockPhysicalTopology struct {
	// Block: The hash of the capacity block within the cluster.
	Block string `json:"block,omitempty"`
	// Cluster: The cluster name of the reservation block.
	Cluster string `json:"cluster,omitempty"`
	// Instances: Output only. The detailed instances information for a given Block
	Instances []*ReservationBlockPhysicalTopologyInstance `json:"instances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Block") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Block") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ReservationBlockPhysicalTopologyInstance: The instances information for a
// given Block
type ReservationBlockPhysicalTopologyInstance struct {
	// InstanceId: The InstanceId of the instance
	InstanceId uint64 `json:"instanceId,omitempty,string"`
	// PhysicalHostTopology: Output only. The PhysicalHostTopology of instances
	// within a Block resource.
	PhysicalHostTopology *ReservationBlockPhysicalTopologyInstancePhysicalHostTopology `json:"physicalHostTopology,omitempty"`
	// ProjectId: Project where the instance lives
	ProjectId uint64 `json:"projectId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "InstanceId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InstanceId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ReservationBlockPhysicalTopologyInstancePhysicalHostTopology: The
// PhysicalHostTopology of the instance within a Block resource.
type ReservationBlockPhysicalTopologyInstancePhysicalHostTopology struct {
	// Host: Host hash for a given instance
	Host string `json:"host,omitempty"`
	// SubBlock: Sub block hash for a given instance
	SubBlock string `json:"subBlock,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 ReservationBlockPhysicalTopologyInstancePhysicalHostTopology) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationBlocksGetResponse struct {
	Resource *ReservationBlock `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 ReservationBlocksGetResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationBlocksGetResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationBlocksListResponse: A list of reservation blocks under a single
// reservation.
type ReservationBlocksListResponse struct {
	// Id: Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of reservation block resources.
	Items []*ReservationBlock `json:"items,omitempty"`
	// Kind: Type of the resource. Alwayscompute#reservationBlock for a list of
	// reservation blocks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: This token allows you to get the next page of results
	// for
	// list requests. If the number of results is larger thanmaxResults, 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: Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: Informational warning message.
	Warning *ReservationBlocksListResponseWarning `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 ReservationBlocksListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationBlocksListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationBlocksListResponseWarning: Informational warning message.
type ReservationBlocksListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*ReservationBlocksListResponseWarningData `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 ReservationBlocksListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationBlocksListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationBlocksListResponseWarningData 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 ReservationBlocksListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationBlocksListResponseWarningData
	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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// ReservationParams: Additional reservation params.
type ReservationParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// reservation. Tag keys and
	// values have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 ReservationParams) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationSlot: Represents a reservation slot resource.
type ReservationSlot struct {
	// CreationTimestamp: Output only. [Output Only] The creation timestamp,
	// formatted asRFC3339 text.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for this resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] The type of resource.
	// Alwayscompute#reservationSlot for reservation slots.
	Kind string `json:"kind,omitempty"`
	// Name: Output only. [Output Only] The name of the reservation slot.
	Name string `json:"name,omitempty"`
	// PhysicalTopology: Output only. [Output Only] The physical topology of the
	// reservation slot.
	PhysicalTopology *ReservationSlotPhysicalTopology `json:"physicalTopology,omitempty"`
	// SelfLink: Output only. [Output Only] A server-defined fully-qualified URL
	// for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] A server-defined URL for this
	// resource with the resource ID.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// ShareSettings: Specify share settings to create a shared slot. Set to
	// empty
	// to inherit the share settings from a parent resource.
	ShareSettings *ShareSettings `json:"shareSettings,omitempty"`
	// State: Output only. [Output Only] The state of the reservation slot.
	//
	// Possible values:
	//   "ACTIVE" - The reservation slot has allocated all its resources.
	//   "CREATING" - The resources are being allocated for the reservation slot.
	//   "DELETING" - The reservation slot is currently being deleted.
	//   "STATE_UNSPECIFIED"
	//   "UNAVAILABLE" - The reservation slot is currently unavailable.
	State string `json:"state,omitempty"`
	// Status: Output only. [Output Only] The status of the reservation slot.
	Status *ReservationSlotStatus `json:"status,omitempty"`
	// Zone: Output only. [Output Only] The zone in which the reservation slot
	// resides.
	Zone string `json:"zone,omitempty"`
	// 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 ReservationSlot) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSlot
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationSlotPhysicalTopology struct {
	// Block: The unique identifier of the capacity block within the cluster.
	Block string `json:"block,omitempty"`
	// Cluster: The cluster name of the reservation sub-block.
	Cluster string `json:"cluster,omitempty"`
	// Host: The unique identifier of the capacity host within the capacity
	// sub-block.
	Host string `json:"host,omitempty"`
	// SubBlock: The unique identifier of the capacity sub-block within the
	// capacity
	// block.
	SubBlock string `json:"subBlock,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Block") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Block") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ReservationSlotStatus struct {
	// PhysicalTopology: Output only. [Output Only] The physical topology of the
	// reservation sub-block.
	PhysicalTopology *ReservationSlotPhysicalTopology `json:"physicalTopology,omitempty"`
	// RdmaIpAddresses: Output only. The RDMA IP address of the physical host.
	RdmaIpAddresses []string `json:"rdmaIpAddresses,omitempty"`
	// RunningInstances: Output only. The URIs of the instances currently running
	// on this slot.
	RunningInstances []string `json:"runningInstances,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PhysicalTopology") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PhysicalTopology") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ReservationSlotsGetResponse struct {
	Resource *ReservationSlot `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 ReservationSlotsGetResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSlotsGetResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationSlotsGetVersionRequest struct {
	// SbomSelections: The SBOM selection to return. Duplicate values in the list
	// will be ignored.
	//
	// Possible values:
	//   "SBOM_SELECTION_CURRENT"
	//   "SBOM_SELECTION_TARGET"
	//   "SBOM_SELECTION_UNSPECIFIED"
	SbomSelections []string `json:"sbomSelections,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SbomSelections") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SbomSelections") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ReservationSlotsListResponse: A list of reservation slots within a single
// reservation.
type ReservationSlotsListResponse struct {
	// Id: The unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of reservation slot resources.
	Items []*ReservationSlot `json:"items,omitempty"`
	// Kind: The type of resource. Alwayscompute#reservationSlot for a list of
	// reservation
	// slots.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: This token allows you to get the next page of results
	// for
	// list requests. If the number of results is larger thanmaxResults, 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: The server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: An informational warning message.
	Warning *ReservationSlotsListResponseWarning `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 ReservationSlotsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSlotsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationSlotsListResponseWarning: An informational warning message.
type ReservationSlotsListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*ReservationSlotsListResponseWarningData `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 ReservationSlotsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSlotsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationSlotsListResponseWarningData 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 ReservationSlotsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSlotsListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationSubBlock: Represents a reservation subBlock resource.
type ReservationSubBlock struct {
	// AcceleratorTopologiesInfo: Output only. [Output Only] Slice info for the
	// reservation subBlock.
	AcceleratorTopologiesInfo *AcceleratorTopologiesInfo `json:"acceleratorTopologiesInfo,omitempty"`
	// Count: Output only. [Output Only] The number of hosts that are allocated in
	// this
	// reservation subBlock.
	Count int64 `json:"count,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// HealthInfo: Output only. [Output Only] Health information for the
	// reservation subBlock.
	HealthInfo *ReservationSubBlockHealthInfo `json:"healthInfo,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InUseCount: Output only. [Output Only] The number of instances that are
	// currently in use on this
	// reservation subBlock.
	InUseCount int64 `json:"inUseCount,omitempty"`
	// InUseHostCount: Output only. Number of hosts currently in use. If there is
	// one or more Instances running
	// on the host, it is considered in use.
	InUseHostCount int64 `json:"inUseHostCount,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#reservationSubBlock for reservation subBlocks.
	Kind string `json:"kind,omitempty"`
	// Name: Output only. [Output Only] The name of this reservation subBlock
	// generated by Google
	// Compute Engine. The name must be 1-63 characters long, and comply
	// with
	// RFC1035 @pattern a-z (?:[-a-z0-9]{0,61}[a-z0-9])?
	Name string `json:"name,omitempty"`
	// PhysicalTopology: Output only. [Output Only] The physical topology of the
	// reservation subBlock.
	PhysicalTopology *ReservationSubBlockPhysicalTopology `json:"physicalTopology,omitempty"`
	// ReservationSubBlockMaintenance: Output only. Maintenance information for
	// this reservation subBlock.
	ReservationSubBlockMaintenance *GroupMaintenanceInfo `json:"reservationSubBlockMaintenance,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource with the resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Status: Output only. [Output Only] Status of the reservation subBlock.
	//
	// Possible values:
	//   "CREATING" - Resources are being allocated for the reservation subBlock.
	//   "DELETING" - Reservation subBlock is currently being deleted.
	//   "INVALID"
	//   "READY" - Reservation subBlock has allocated all its resources.
	Status string `json:"status,omitempty"`
	// Zone: Output only. [Output Only] Zone in which the reservation subBlock
	// resides.
	Zone string `json:"zone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorTopologiesInfo")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorTopologiesInfo") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ReservationSubBlockHealthInfo: Health information for the reservation
// subBlock.
type ReservationSubBlockHealthInfo struct {
	// DegradedHostCount: The number of degraded hosts in the reservation subBlock.
	DegradedHostCount int64 `json:"degradedHostCount,omitempty"`
	// DegradedInfraCount: The number of degraded infrastructure (e.g NV link
	// domain) in the
	// reservation subblock.
	DegradedInfraCount int64 `json:"degradedInfraCount,omitempty"`
	// HealthStatus: The health status of the reservation subBlock.
	//
	// Possible values:
	//   "DEGRADED" - The reservation subBlock is degraded.
	//   "HEALTHY" - The reservation subBlock is healthy.
	//   "HEALTH_STATUS_UNSPECIFIED" - The health status of the reservation
	// subBlock is unspecified.
	HealthStatus string `json:"healthStatus,omitempty"`
	// HealthyHostCount: The number of healthy hosts in the reservation subBlock.
	HealthyHostCount int64 `json:"healthyHostCount,omitempty"`
	// HealthyInfraCount: The number of healthy infrastructure (e.g NV link domain)
	// in the
	// reservation subblock.
	HealthyInfraCount int64 `json:"healthyInfraCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DegradedHostCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DegradedHostCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ReservationSubBlockPhysicalTopology struct {
	// Block: The hash of the capacity block within the cluster.
	Block string `json:"block,omitempty"`
	// Cluster: The cluster name of the reservation subBlock.
	Cluster string `json:"cluster,omitempty"`
	// SubBlock: The hash of the capacity sub-block within the capacity block.
	SubBlock string `json:"subBlock,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Block") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Block") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ReservationSubBlocksGetResponse struct {
	Resource *ReservationSubBlock `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 ReservationSubBlocksGetResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSubBlocksGetResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// ReservationSubBlocksListResponse: A list of reservation subBlocks under a
// single reservation.
type ReservationSubBlocksListResponse struct {
	// Id: Unique identifier for the resource; defined by the server.
	Id string `json:"id,omitempty"`
	// Items: A list of reservation subBlock resources.
	Items []*ReservationSubBlock `json:"items,omitempty"`
	// Kind: Type of the resource. Alwayscompute#reservationSubBlock for a list of
	// reservation
	// subBlocks.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: This token allows you to get the next page of results
	// for
	// list requests. If the number of results is larger thanmaxResults, 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: Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warning: Informational warning message.
	Warning *ReservationSubBlocksListResponseWarning `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 ReservationSubBlocksListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSubBlocksListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ReservationSubBlocksListResponseWarning: Informational warning message.
type ReservationSubBlocksListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*ReservationSubBlocksListResponseWarningData `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 ReservationSubBlocksListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSubBlocksListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationSubBlocksListResponseWarningData 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 ReservationSubBlocksListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationSubBlocksListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type ReservationSubBlocksReportFaultyRequest struct {
	// DisruptionSchedule: The disruption schedule for the subBlock.
	//
	// Possible values:
	//   "DISRUPTION_SCHEDULE_UNSPECIFIED"
	//   "IMMEDIATE" - All VMs will be disrupted immediately.
	DisruptionSchedule string `json:"disruptionSchedule,omitempty"`
	// FailureComponent: The component that experienced the fault.
	//
	// Possible values:
	//   "FAILURE_COMPONENT_UNSPECIFIED"
	//   "MULTIPLE_FAULTY_HOSTS" - Multiple hosts experienced the fault.
	//   "NVLINK_SWITCH" - The NVLink switch experienced the fault.
	FailureComponent string `json:"failureComponent,omitempty"`
	// FaultReasons: The reasons for the fault experienced with the subBlock.
	FaultReasons []*ReservationSubBlocksReportFaultyRequestFaultReason `json:"faultReasons,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisruptionSchedule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisruptionSchedule") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ReservationSubBlocksReportFaultyRequestFaultReason: The reason for the fault
// experienced with the subBlock.
type ReservationSubBlocksReportFaultyRequestFaultReason struct {
	// Behavior: The behavior of the fault experienced with the subBlock.
	//
	// Possible values:
	//   "FAULT_BEHAVIOR_UNSPECIFIED"
	//   "GPU_ERROR" - The subBlock experienced a GPU error.
	//   "PERFORMANCE" - The subBlock experienced performance issues.
	//   "SILENT_DATA_CORRUPTION" - The subBlock experienced silent data
	// corruption.
	//   "SWITCH_FAILURE" - The subBlock experienced a switch failure.
	Behavior string `json:"behavior,omitempty"`
	// Description: The description of the fault experienced with the subBlock.
	Description string `json:"description,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Behavior") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Behavior") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ReservationsBlocksPerformMaintenanceRequest struct {
	// MaintenanceScope: Specifies if all, running or unused hosts are in scope for
	// this request.
	//
	// Possible values:
	//   "ALL" - Trigger maintenance for all hosts belonging to this
	// reservation
	// irrespective of whether VMs are running on them or not.
	//   "MAINTENANCE_SCOPE_UNSPECIFIED" - Internal only
	//   "RUNNING_VMS" - Trigger maintenance only on the hosts belonging to this
	// reservation which
	// have VMs running on them.
	//   "UNUSED_CAPACITY" - Trigger maintenance only on the hosts belonging to
	// this reservation which
	// do not have any VMs running on them. This is not allowed for Standard ExR
	MaintenanceScope string `json:"maintenanceScope,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaintenanceScope") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaintenanceScope") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ReservationsPerformMaintenanceRequest struct {
	// MaintenanceScope: Specifies if all, running or unused hosts are in scope for
	// this request.
	//
	// Possible values:
	//   "ALL" - Trigger maintenance for all hosts belonging to this
	// reservation
	// irrespective of whether VMs are running on them or not.
	//   "MAINTENANCE_SCOPE_UNSPECIFIED" - Internal only
	//   "RUNNING_VMS" - Trigger maintenance only on the hosts belonging to this
	// reservation which
	// have VMs running on them.
	//   "UNUSED_CAPACITY" - Trigger maintenance only on the hosts belonging to
	// this reservation which
	// do not have any VMs running on them. This is not allowed for Standard ExR
	MaintenanceScope string `json:"maintenanceScope,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaintenanceScope") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaintenanceScope") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ReservationsPerformMaintenanceRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ReservationsPerformMaintenanceRequest
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 hardware resource (a
// commitment is composed of
// one or more of these).
type ResourceCommitment struct {
	// AcceleratorType: Name of the accelerator type or GPU resource. Specify this
	// field only when
	// the type of hardware resource is ACCELERATOR.
	AcceleratorType string `json:"acceleratorType,omitempty"`
	// Amount: The quantity of the hardware resource that you want to commit to
	// purchasing
	// (in a type-dependent unit).
	//
	//    - For vCPUs, you must specify an integer value.
	//    - For memory, you specify the amount of MB that you want. The value you
	//    specify must be a multiple of 256 MB, with up to 6.5 GB of
	//    memory per every vCPU.
	//    - For GPUs, you must specify an integer value.
	//    - For Local SSD disks, you must specify the amount in GB. The size of a
	//    single Local SSD disk is 375 GB.
	Amount int64 `json:"amount,omitempty,string"`
	// Type: The type of hardware resource that you want to specify.
	// You can specify any of the following values:
	//
	//    - VCPU
	//    - MEMORY
	//    - LOCAL_SSD
	//    - ACCELERATOR
	//
	//
	//
	// Specify as a separate entry in the list for each
	// individual resource type.
	//
	// 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 toschedule persistent disk
// snapshots.
type ResourcePolicy struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [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. [Output Only] Type of the resource.
	// Alwayscompute#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
	// withRFC1035.
	// 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. [Output Only] The system status of the resource
	// policy.
	ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SnapshotSchedulePolicy: Resource policy for persistent disks for creating
	// snapshots.
	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
	// Status: Output only. [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"`
	// WorkloadPolicy: Resource policy for defining instance placement for MIGs.
	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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 {
	// AcceleratorTopologyMode: Specifies the connection mode for the accelerator
	// topology. If not
	// specified, the default is AUTO_CONNECT.
	//
	// Possible values:
	//   "AUTO_CONNECT" - The interconnected chips are pre-configured at the time
	// of VM creation.
	//   "PROVISION_ONLY" - The interconnected chips are connected on demand. At
	// the time of VM
	// creation, the chips are not connected.
	AcceleratorTopologyMode string `json:"acceleratorTopologyMode,omitempty"`
	// 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:
	//   "COLLOCATED"
	//   "UNSPECIFIED_COLLOCATION"
	Collocation string `json:"collocation,omitempty"`
	// GpuTopology: Specifies the shape of the GPU slice, in slice based GPU
	// families eg.
	// A4X.
	GpuTopology string `json:"gpuTopology,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. "AcceleratorTopologyMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorTopologyMode") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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. [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. [Output Only] Type of
	// resource.Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [Output Only] The last time the schedule
	// successfully ran.
	// The timestamp is an RFC3339 string.
	LastRunStartTime string `json:"lastRunStartTime,omitempty"`
	// NextRunStartTime: Output only. [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"`
	// 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)
}

// 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. [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 {
	// AcceleratorTopology: Specifies the topology required to create a partition
	// for VMs that have
	// interconnected GPUs.
	AcceleratorTopology string `json:"acceleratorTopology,omitempty"`
	// AcceleratorTopologyMode: Specifies the connection mode for the accelerator
	// topology. If not
	// specified, the default is AUTO_CONNECT.
	//
	// Possible values:
	//   "AUTO_CONNECT" - The interconnected chips are pre-configured at the time
	// of VM creation.
	//   "PROVISION_ONLY" - The interconnected chips are connected on demand. At
	// the time of VM
	// creation, the chips are not connected.
	AcceleratorTopologyMode string `json:"acceleratorTopologyMode,omitempty"`
	// MaxTopologyDistance: Specifies the maximum distance between instances.
	//
	// Possible values:
	//   "BLOCK" - VMs must be provisioned in the same block.
	//   "CLUSTER" - VMs must be provisioned in the same cluster.
	//   "SUBBLOCK" - VMs must be provisioned in the same subblock.
	MaxTopologyDistance string `json:"maxTopologyDistance,omitempty"`
	// Type: Specifies the intent of the instance placement in the MIG.
	//
	// Possible values:
	//   "HIGH_AVAILABILITY" - MIG spreads out the instances as much as possible
	// for high availability.
	//   "HIGH_THROUGHPUT" - MIG provisions instances as close to each other as
	// possible for high
	// throughput.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceleratorTopology") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceleratorTopology") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values 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 {
	// EffectiveInstanceMetadata: Output only. [Output Only] Effective metadata is
	// a field that consolidates project,
	// zonal instance settings, and instance-level predefined metadata keys
	// to
	// provide the overridden value for those metadata keys at the instance level.
	EffectiveInstanceMetadata *ResourceStatusEffectiveInstanceMetadata `json:"effectiveInstanceMetadata,omitempty"`
	// PhysicalHost: Output only. [Output Only] The precise location of your
	// instance within the zone's data
	// center, including the block, sub-block, and host. The field is formatted
	// as
	// follows: blockId/subBlockId/hostId.
	PhysicalHost string `json:"physicalHost,omitempty"`
	// PhysicalHostTopology: Output only. [Output Only] A series of fields
	// containing the global name of the Compute
	// Engine cluster, as well as the ID of the block, sub-block, and host on
	// which the running instance is located.
	PhysicalHostTopology *ResourceStatusPhysicalHostTopology `json:"physicalHostTopology,omitempty"`
	// ReservationConsumptionInfo: Output only. [Output Only] Reservation
	// information that the instance is consuming from.
	ReservationConsumptionInfo *ResourceStatusReservationConsumptionInfo `json:"reservationConsumptionInfo,omitempty"`
	Scheduling                 *ResourceStatusScheduling                 `json:"scheduling,omitempty"`
	UpcomingMaintenance        *UpcomingMaintenance                      `json:"upcomingMaintenance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EffectiveInstanceMetadata")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EffectiveInstanceMetadata") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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)
}

// ResourceStatusEffectiveInstanceMetadata: Effective values of predefined
// metadata keys for an instance.
type ResourceStatusEffectiveInstanceMetadata struct {
	// BlockProjectSshKeysMetadataValue: Effective block-project-ssh-keys value at
	// Instance level.
	BlockProjectSshKeysMetadataValue bool `json:"blockProjectSshKeysMetadataValue,omitempty"`
	// EnableGuestAttributesMetadataValue: Effective enable-guest-attributes value
	// at Instance level.
	EnableGuestAttributesMetadataValue bool `json:"enableGuestAttributesMetadataValue,omitempty"`
	// EnableOsInventoryMetadataValue: Effective enable-os-inventory value at
	// Instance level.
	EnableOsInventoryMetadataValue bool `json:"enableOsInventoryMetadataValue,omitempty"`
	// EnableOsconfigMetadataValue: Effective enable-osconfig value at Instance
	// level.
	EnableOsconfigMetadataValue bool `json:"enableOsconfigMetadataValue,omitempty"`
	// EnableOsloginMetadataValue: Effective enable-oslogin value at Instance
	// level.
	EnableOsloginMetadataValue bool `json:"enableOsloginMetadataValue,omitempty"`
	// GceContainerDeclarationMetadataValue: Effective gce-container-declaration
	// value at Instance level.
	GceContainerDeclarationMetadataValue bool `json:"gceContainerDeclarationMetadataValue,omitempty"`
	// SerialPortEnableMetadataValue: Effective serial-port-enable value at
	// Instance level.
	SerialPortEnableMetadataValue bool `json:"serialPortEnableMetadataValue,omitempty"`
	// SerialPortLoggingEnableMetadataValue: Effective serial-port-logging-enable
	// value at Instance level.
	SerialPortLoggingEnableMetadataValue bool `json:"serialPortLoggingEnableMetadataValue,omitempty"`
	// VmDnsSettingMetadataValue: Effective VM DNS setting at Instance level.
	VmDnsSettingMetadataValue string `json:"vmDnsSettingMetadataValue,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BlockProjectSshKeysMetadataValue") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "BlockProjectSshKeysMetadataValue") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// ResourceStatusPhysicalHostTopology: Represents the physical host topology of
// the host on which the VM is
// running.
type ResourceStatusPhysicalHostTopology struct {
	// Block: [Output Only] The ID of the block in which the running instance
	// is
	// located. Instances within the same block experience low network latency.
	Block string `json:"block,omitempty"`
	// Cluster: [Output Only] The global name of the Compute Engine cluster where
	// the
	// running instance is located.
	Cluster string `json:"cluster,omitempty"`
	// Host: [Output Only] The ID of the host on which the running instance is
	// located.
	// Instances on the same host experience the lowest possible network
	// latency.
	Host string `json:"host,omitempty"`
	// Subblock: [Output Only] The ID of the sub-block in which the running
	// instance is
	// located. Instances in the same sub-block experience lower network
	// latency
	// than instances in the same block.
	Subblock string `json:"subblock,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Block") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Block") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ResourceStatusReservationConsumptionInfo: Reservation consumption
// information that the instance is consuming from.
type ResourceStatusReservationConsumptionInfo struct {
	// ConsumedReservation: Output only. [Output Only] The full resource name of
	// the reservation that this
	// instance is consuming from.
	ConsumedReservation string `json:"consumedReservation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsumedReservation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsumedReservation") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s ResourceStatusReservationConsumptionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod ResourceStatusReservationConsumptionInfo
	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"`
	// 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)
}

// Rollout: Rollout resource.
//
// A Rollout is a specific instance of a RolloutPlan. It represents a
// single
// execution of a strategy to roll out a specific resource. It also
// provides
// APIs to interact with the rollout.
type Rollout struct {
	// CancellationTime: Output only. The timestamp at which the Rollout was
	// cancelled.
	CancellationTime string `json:"cancellationTime,omitempty"`
	// CompletionTime: Output only. The timestamp at which the Rollout was
	// completed.
	CompletionTime string `json:"completionTime,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// CurrentWaveNumber: Output only. The number of the currently running
	// wave.
	// Ex. 1
	CurrentWaveNumber int64 `json:"currentWaveNumber,omitempty,string"`
	// Description: An optional description of this resource. Provide this property
	// when you
	// create the resource.
	Description string `json:"description,omitempty"`
	// Etag: Output only. etag of the Rollout
	// Ex. abc1234
	Etag string `json:"etag,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource. Always
	// compute#rollout
	// for rollouts.
	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 withRFC1035.
	// 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"`
	// RolloutEntity: Required. The resource being rolled out.
	RolloutEntity *RolloutRolloutEntity `json:"rolloutEntity,omitempty"`
	// RolloutPlan: Required. Rollout Plan used to model the Rollout.
	// Ex. compute.googleapis.com/v1/projects/1234/rolloutPlans/rp1
	RolloutPlan string `json:"rolloutPlan,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource's resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// State: Output only. The current state of the Rollout.
	//
	// Possible values:
	//   "CANCELLED" - The rollout is in a failure terminal state.
	//   "CANCELLING" - The rollout is being cancelled.
	//   "CANCEL_FAILED" - An attempted cancel operation was unsuccessful.
	//   "COMPLETED" - The rollout is in a successful terminal state.
	//   "COMPLETE_FAILED" - An attempted complete operation was unsuccessful.
	//   "COMPLETING" - The rollout is being marked as completed.
	//   "FAILED" - The rollout completed with failures.
	//   "PAUSED" - The rollout is paused.
	//   "PAUSE_FAILED" - An attempted pause operation was unsuccessful.
	//   "PAUSING" - The rollout is being paused.
	//   "PROCESSING" - A wave is being processed by the product.
	//   "READY" - The rollout has been successfully initialized and is ready to
	// start.
	//   "RESUMING" - The rollout is being resumed after being paused.
	//   "ROLLBACK_WAVE_FAILED" - An attempted rollback operation failed to
	// complete successfully.
	//   "ROLLING_BACK" - A wave rollback is in progress for this rollout.
	//   "STATE_UNSPECIFIED" - Undefined default state. Should never be exposed to
	// users.
	//   "UNINITIALIZED" - The rollout has been created but is not yet ready to be
	// started.
	//   "WAVE_FAILED" - The product failed to process the wave.
	State string `json:"state,omitempty"`
	// WaveDetails: Output only. Details about each wave of the rollout.
	WaveDetails []*RolloutWaveDetails `json:"waveDetails,omitempty"`

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

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

// RolloutPlan: RolloutPlan resource.
//
// A RolloutPlan is the customer-defined strategy to divide a large-scale
// change
// into smaller increments, referred to as "waves". Each wave targets a
// specific
// portion of the overall affected area and defines criteria that must be
// met
// before progressing to the subsequent wave.
type RolloutPlan struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource. Always
	// compute#rolloutPlan
	// for rolloutPlans.
	Kind string `json:"kind,omitempty"`
	// LocationScope: The location scope of the rollout plan. If not specified, the
	// location
	// scope is considered as ZONAL.
	//
	// Possible values:
	//   "LOCATION_SCOPE_UNSPECIFIED" - Unspecified value. Considered as ZONAL.
	//   "REGIONAL" - Regional scope.
	//   "ZONAL" - Zonal scope.
	LocationScope string `json:"locationScope,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 withRFC1035.
	// 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. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource's resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// Waves: Required. The waves included in this rollout plan.
	Waves []*RolloutPlanWave `json:"waves,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 RolloutPlan) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutPlan
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RolloutPlanWave: A single wave in a rollout plan.
type RolloutPlanWave struct {
	// DisplayName: Optional. The display name of this wave of the rollout plan.
	DisplayName string `json:"displayName,omitempty"`
	// Number: Output only. The wave number.
	Number int64 `json:"number,omitempty,string"`
	// OrchestrationOptions: Optional. The orchestration options for this wave.
	OrchestrationOptions *RolloutPlanWaveOrchestrationOptions `json:"orchestrationOptions,omitempty"`
	// Selectors: Required. The selectors for this wave. There is a logical AND
	// between each selector
	// defined in a wave, so a resource must satisfy the criteria of *all*
	// the
	// specified selectors to be in scope for the wave.
	Selectors []*RolloutPlanWaveSelector `json:"selectors,omitempty"`
	// Validation: Required. The validation to be performed at the end of this
	// wave.
	Validation *RolloutPlanWaveValidation `json:"validation,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 RolloutPlanWave) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutPlanWave
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RolloutPlanWaveOrchestrationOptions: Options to control the pace of
// orchestration of a wave. These options are
// required only if the resource being rolled out follows the
// Orchestrated
// pattern.
type RolloutPlanWaveOrchestrationOptions struct {
	// Delays: Optional. Delays, if any, to be added between batches of projects.
	// We allow
	// multiple Delays to be specified, letting users set separate delays
	// between batches of projects corresponding to different locations and
	// batches of projects corresponding to the same location.
	Delays []*RolloutPlanWaveOrchestrationOptionsDelay `json:"delays,omitempty"`
	// MaxConcurrentLocations: Optional. Maximum number of locations to be
	// orchestrated in parallel.
	MaxConcurrentLocations int64 `json:"maxConcurrentLocations,omitempty,string"`
	// MaxConcurrentResourcesPerLocation: Optional. Maximum number of resources to
	// be orchestrated per location in
	// parallel.
	MaxConcurrentResourcesPerLocation int64 `json:"maxConcurrentResourcesPerLocation,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Delays") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Delays") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutPlanWaveOrchestrationOptionsDelay: Options to control the delay, if
// any, between batches of projects.
type RolloutPlanWaveOrchestrationOptionsDelay struct {
	// Delimiter: Optional. Controls whether the delay should only be added between
	// batches of
	// projects corresponding to different locations, or also between
	// batches of projects corresponding to the same location.
	//
	// Must be set to DELIMITER_UNSPECIFIED if no delay is to be added.
	//
	// Possible values:
	//   "DELIMITER_BATCH" - The delay will also be added between batches of
	// projects
	// corresponding to the same location.
	//   "DELIMITER_LOCATION" - The delay will only be added between batches of
	// projects
	// corresponding to different locations.
	//   "DELIMITER_UNSPECIFIED" - No delay will be added between batches of
	// projects. Processing will
	// continue with the next batch as soon as the previous batch of LROs
	// is done.
	Delimiter string `json:"delimiter,omitempty"`
	// Duration: Optional. The duration of the delay, if any, to be added between
	// batches of
	// projects. A zero duration corresponds to no delay.
	Duration string `json:"duration,omitempty"`
	// Type: Optional. Controls whether the specified duration is to be added at
	// the end of
	// each batch, or if the total processing time for each batch will be
	// padded if needed to meet the specified duration.
	//
	// Must be set to TYPE_UNSPECIFIED if no delay is to be added.
	//
	// Possible values:
	//   "TYPE_MINIMUM" - The total processing time for each batch of projects will
	// be padded
	// if needed to meet the specified delay duration.
	//   "TYPE_OFFSET" - The specified delay will directly be added after each
	// batch of
	// projects as specified by the delimiter.
	//   "TYPE_UNSPECIFIED" - No delay will be added between batches of projects.
	// Processing will
	// continue with the next batch as soon as the previous batch of LROs
	// is done.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Delimiter") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Delimiter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutPlanWaveSelector: A selector which specifies what resource(s) are
// included in a given wave.
type RolloutPlanWaveSelector struct {
	// LocationSelector: Optional. Roll out to resources by Cloud locations.
	LocationSelector *RolloutPlanWaveSelectorLocationSelector `json:"locationSelector,omitempty"`
	// ResourceHierarchySelector: Optional. Roll out to resources by Cloud Resource
	// Manager resource hierarchy.
	ResourceHierarchySelector *RolloutPlanWaveSelectorResourceHierarchySelector `json:"resourceHierarchySelector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LocationSelector") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LocationSelector") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// RolloutPlanWaveSelectorResourceHierarchySelector: Roll out to resources by
// Cloud Resource Manager resource hierarchy
// nodes such as projects, folders, orgs.
type RolloutPlanWaveSelectorResourceHierarchySelector struct {
	// IncludedFolders: Optional. Format: "folders/{folder_id}"
	IncludedFolders []string `json:"includedFolders,omitempty"`
	// IncludedOrganizations: Optional. Format: "organizations/{organization_id}"
	IncludedOrganizations []string `json:"includedOrganizations,omitempty"`
	// IncludedProjects: Optional. Format: "projects/{project_id}"
	IncludedProjects []string `json:"includedProjects,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludedFolders") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludedFolders") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutPlanWaveValidation: The validation to be performed before progressing
// to the next wave.
type RolloutPlanWaveValidation struct {
	// TimeBasedValidationMetadata: Optional. Metadata required if type = "time".
	TimeBasedValidationMetadata *RolloutPlanWaveValidationTimeBasedValidationMetadata `json:"timeBasedValidationMetadata,omitempty"`
	// Type: Required. The type of the validation. If a type of validation is
	// associated with
	// a metadata object, the appropriate metadata field mapping to the
	// validation type must be provided in the validation message. Possible
	// values are in quotes below alongside an explanation:
	//   "manual": The system waits for an end-user approval API before
	//     progressing to the next wave.
	//   "time": The system waits for a user specified duration before
	//     progressing to the next wave. TimeBasedValidation must be provided.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "TimeBasedValidationMetadata") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TimeBasedValidationMetadata") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutPlanWaveValidationTimeBasedValidationMetadata: Metadata required if
// type = "time".
type RolloutPlanWaveValidationTimeBasedValidationMetadata struct {
	// WaitDuration: Optional. The duration that the system waits in between waves.
	// This wait starts
	// after all changes in the wave are rolled out.
	WaitDuration string `json:"waitDuration,omitempty"`
	// ForceSendFields is a list of field names (e.g. "WaitDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WaitDuration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutPlansListResponse: Contains a list of RolloutPlan resources.
type RolloutPlansListResponse 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 RolloutPlan resources.
	Items []*RolloutPlan `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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable
	// resources.
	// end_interface: MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RolloutPlansListResponseWarning `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 RolloutPlansListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutPlansListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RolloutPlansListResponseWarning: [Output Only] Informational warning
// message.
type RolloutPlansListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*RolloutPlansListResponseWarningData `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 RolloutPlansListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutPlansListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RolloutPlansListResponseWarningData 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 RolloutPlansListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutPlansListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RolloutRolloutEntity: Specifications of the resource to roll out.
type RolloutRolloutEntity struct {
	// OrchestratedEntity: Optional. Entity details for products using the
	// Orchestrated Integration model.
	OrchestratedEntity *RolloutRolloutEntityOrchestratedEntity `json:"orchestratedEntity,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OrchestratedEntity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OrchestratedEntity") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutRolloutEntityOrchestratedEntity: This message is used if the resource
// type follows the Orchestrated
// integration model with ProgressiveRollout.
type RolloutRolloutEntityOrchestratedEntity struct {
	// ConflictBehavior: Required. Specifies the behavior of the Rollout if an out
	// of band update is
	// detected in a project during a Rollout. It can be one of the
	// following
	// values:
	// 1) overwrite : Overwrite the local value with the rollout value.
	// 2) no_overwrite : Do not overwrite the local value with the rollout
	// value.
	ConflictBehavior string `json:"conflictBehavior,omitempty"`
	// OrchestrationAction: Required. Orchestration action during the Rollout. It
	// can be one of the following
	// values:
	// 1) "update": Resources will be updated by the rollout.
	// 2) "delete": Resources will be deleted by the rollout.
	OrchestrationAction string `json:"orchestrationAction,omitempty"`
	// OrchestrationSource: Required. Fully qualified resource name of the resource
	// which contains the source
	// of truth of the configuration being rolled out across
	// locations/projects. For example, in the case of a global Rollout which
	// is applied across regions, this contains the name of the global
	// resource created by the user which contains a payload for a resource
	// that is orchestrated across regions. This follows the following
	// format:
	// //.googleapis.com/projects//locations/global//
	// e.g.
	// //osconfig.googleapis.com/projects/1/locations/global/policyOrchestrators/po1
	OrchestrationSource string `json:"orchestrationSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConflictBehavior") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConflictBehavior") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutWaveDetails: Additional metadata about the status of each wave
// provided by the server.
type RolloutWaveDetails struct {
	// OrchestratedWaveDetails: Output only. Additional details of the wave for
	// products using the Orchestrated
	// Integration model.
	OrchestratedWaveDetails *RolloutWaveDetailsOrchestratedWaveDetails `json:"orchestratedWaveDetails,omitempty"`
	// WaveDisplayName: Output only. Wave name.
	// Ex. wave1
	WaveDisplayName string `json:"waveDisplayName,omitempty"`
	// WaveNumber: Output only. System generated number for the wave.
	WaveNumber int64 `json:"waveNumber,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "OrchestratedWaveDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OrchestratedWaveDetails") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutWaveDetailsOrchestratedWaveDetails: Details of the wave for products
// using the Orchestrated integration
// model.
type RolloutWaveDetailsOrchestratedWaveDetails struct {
	// CompletedResourcesCount: Output only. Resource completed so far.
	CompletedResourcesCount int64 `json:"completedResourcesCount,omitempty,string"`
	// EstimatedCompletionTime: Output only. Estimated timestamp at which the wave
	// will complete. Extrapolated from
	// current progress.
	EstimatedCompletionTime string `json:"estimatedCompletionTime,omitempty"`
	// EstimatedTotalResourcesCount: Output only. Estimated total count of
	// resources.
	EstimatedTotalResourcesCount int64 `json:"estimatedTotalResourcesCount,omitempty,string"`
	// FailedLocations: Output only. Locations that failed during orchestration,
	// and ProgressiveRollout
	// stopped retrying. There may be some successful resources rolled out in
	// the wave as the location may have failed later in the Rollout.
	FailedLocations []string `json:"failedLocations,omitempty"`
	// FailedResourcesCount: Output only. Resources failed.
	FailedResourcesCount int64 `json:"failedResourcesCount,omitempty,string"`
	// LocationStatus: Output only. Status of each location in the wave. Map keys
	// (locations) must be
	// specified like "us-east1" or "asia-west1-a".
	LocationStatus map[string]RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus `json:"locationStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletedResourcesCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletedResourcesCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus: Represents the
// status of a location in a wave.
type RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus struct {
	// State: Output only. Location state of the wave.
	//
	// Possible values:
	//   "STATE_FAILED" - Work on the wave failed.
	//   "STATE_IN_PROGRESS" - Work on the wave is in progress.
	//   "STATE_PENDING" - Work on the wave is pending.
	//   "STATE_SKIPPED" - Work on the wave was canceled or skipped.
	//   "STATE_SUCCEEDED" - Work on the wave succeeded.
	//   "STATE_UNSPECIFIED" - Undefined default state. Should never be exposed to
	// users.
	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 RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RolloutsListResponse 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 Rollout resources.
	Items []*Rollout `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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable
	// resources.
	// end_interface: MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *RolloutsListResponseWarning `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 RolloutsListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutsListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RolloutsListResponseWarning: [Output Only] Informational warning message.
type RolloutsListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*RolloutsListResponseWarningData `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 RolloutsListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutsListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RolloutsListResponseWarningData 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 RolloutsListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod RolloutsListResponseWarningData
	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 theRoutes overview.
type Route struct {
	// AsPaths: Output only. [Output Only] AS path.
	AsPaths []*RouteAsPath `json:"asPaths,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 withRFC1035.
	// 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. [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 typeloadBalancingScheme=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. [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. [Output Only] The URL to an
	// InterconnectAttachment which is the next hop
	// for the route.
	// This field will only be populated for dynamic routes generated by
	// Cloud Router with a linked interconnectAttachment or the static
	// route
	// generated by each L2 Interconnect Attachment.
	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. [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. [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. [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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *RouteParams `json:"params,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. This status applies
	// to
	// dynamic routes learned by Cloud Routers. It is also applicable to
	// routes
	// undergoing migration.
	//
	// 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. [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"`
	// Tags: A list of instance tags to which this route applies.
	Tags []string `json:"tags,omitempty"`
	// Warnings: Output only. [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. "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 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// RouteParams: Additional route parameters.
type RouteParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	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 RouteParams) MarshalJSON() ([]byte, error) {
	type NoMethod RouteParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type RoutePolicy struct {
	// Description: An optional description of route policy.
	Description string `json:"description,omitempty"`
	// 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. "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 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 theCloud
// 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
	// toRFC4273.
	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *RouterParams `json:"params,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"`

	// 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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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_SUBNETS" - Advertise all available subnets (including peer 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 anRFC6996 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_SUBNETS" - Advertise all available subnets (including peer 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.
	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.
	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. [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 withRFC1035. 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"`
	// 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"`
	// 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"`
	// 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
	// theRFC3927 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, fdff: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. [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 withRFC1035. 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
	// withRFC1035. 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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 withRFC1035.
	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.
	//   "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 withRFC1035.
	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)
}

// RouterParams: Additional router parameters.
type RouterParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	// * Inconsistent format is not supported. For instance:
	//   {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid.
	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 RouterParams) MarshalJSON() ([]byte, error) {
	type NoMethod RouterParams
	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: Output only. Enable IPv4 traffic over BGP Peer.
	// It is enabled by default if the peerIpAddress is version 4.
	EnableIpv4 bool `json:"enableIpv4,omitempty"`
	// EnableIpv6: Output only. Enable IPv6 traffic over BGP Peer.
	// It is enabled by default if the peerIpAddress is version 6.
	EnableIpv6 bool `json:"enableIpv6,omitempty"`
	// IpAddress: Output only. IP address of the local BGP interface.
	IpAddress string `json:"ipAddress,omitempty"`
	// Ipv4NexthopAddress: Output only. IPv4 address of the local BGP interface.
	Ipv4NexthopAddress string `json:"ipv4NexthopAddress,omitempty"`
	// Ipv6NexthopAddress: Output only. IPv6 address of the local BGP interface.
	Ipv6NexthopAddress string `json:"ipv6NexthopAddress,omitempty"`
	// LinkedVpnTunnel: Output only. 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: Output only. Name of this BGP peer. Unique within the Routers
	// resource.
	Name string `json:"name,omitempty"`
	// NumLearnedRoutes: Output only. Number of routes learned from the remote BGP
	// Peer.
	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
	// PeerIpAddress: Output only. IP address of the remote BGP interface.
	PeerIpAddress string `json:"peerIpAddress,omitempty"`
	// PeerIpv4NexthopAddress: Output only. IPv4 address of the remote BGP
	// interface.
	PeerIpv4NexthopAddress string `json:"peerIpv4NexthopAddress,omitempty"`
	// PeerIpv6NexthopAddress: Output only. IPv6 address of the remote BGP
	// interface.
	PeerIpv6NexthopAddress string `json:"peerIpv6NexthopAddress,omitempty"`
	// RouterApplianceInstance: Output only. [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: Output only. The state of the BGP session. For a list of possible
	// values for this
	// field, seeBGP session states.
	State string `json:"state,omitempty"`
	// Status: Output only. 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: Output only. 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: Output only. 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: Output only. A list of IPs auto-allocated for NAT.
	// Example: ["1.1.1.1", "129.2.16.89"]
	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
	// DrainAutoAllocatedNatIps: Output only. 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: Output only. 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: Output only. 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: Output only. Unique name of this NAT.
	Name string `json:"name,omitempty"`
	// NumVmEndpointsWithNatMappings: Output only. 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: Output only. A list of fully qualified URLs of
	// reserved IP address resources.
	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
	// UserAllocatedNatIps: Output only. 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: Output only. A list of active IPs for NAT.
	// Example: ["1.1.1.1", "179.12.26.133"].
	ActiveNatIps []string `json:"activeNatIps,omitempty"`
	// DrainNatIps: Output only. 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: Output only. 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: Output only. Number of VM endpoints (i.e.,
	// NICs) that have NAT Mappings from this
	// NAT Rule.
	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
	// RuleNumber: Output only. 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: Output only. 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 RoutersGetRoutePolicyResponse struct {
	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. "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 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

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 through65535.
	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 theport 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. [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: Output only. 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:
	//   "NVME"
	//   "SCSI"
	Interface string `json:"interface,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#attachedDisk for attached disks.
	Kind string `json:"kind,omitempty"`
	// Licenses: Output only. [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,
	// eitherREAD_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. [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. [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 orPERSISTENT.
	//
	// 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. [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. [Output Only] Type of the resource. Always
	// compute#savedDisk
	// for attached disks.
	Kind string `json:"kind,omitempty"`
	// SourceDisk: Output only. Specifies a URL of the disk attached to the source
	// instance.
	SourceDisk string `json:"sourceDisk,omitempty"`
	// StorageBytes: Output only. [Output Only] Size of the individual disk
	// snapshot used by this machine
	// image.
	StorageBytes int64 `json:"storageBytes,omitempty,string"`
	// StorageBytesStatus: Output only. [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"`
	// 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"`
	// 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"`
	// 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 toConfiguring 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. Forpreemptible 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 isstopped and
	// therefore, in a `TERMINATED` state. SeeInstance 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:
	//   "FLEX_START" - Instance is provisioned using the Flex Start provisioning
	// model and
	// has a limited runtime.
	//   "RESERVATION_BOUND" - Bound to the lifecycle of the reservation in which
	// it is provisioned.
	//   "SPOT" - Heavily discounted, no guaranteed runtime.
	//   "STANDARD" - Standard provisioning with user controlled runtime, no
	// discounts.
	ProvisioningModel string `json:"provisioningModel,omitempty"`
	// SkipGuestOsShutdown: Default is false and there will be 120 seconds between
	// GCE ACPI G2 Soft
	// Off and ACPI G3 Mechanical
	// Off for Standard VMs and 30 seconds for Spot VMs.
	SkipGuestOsShutdown bool `json:"skipGuestOsShutdown,omitempty"`
	// TerminationTime: Specifies the timestamp, when the instance will be
	// terminated, inRFC3339 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)
}

// 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 areIN 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_actionSTOP.
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. [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)
}

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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// 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 error412 conditionNotMet.
	//
	// To see the latest fingerprint, make get() request to the
	// security policy.
	Fingerprint string `json:"fingerprint,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output only] Type of the resource.
	// Alwayscompute#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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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 withRFC1035.
	// 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. [Output Only] The parent of the security policy.
	Parent                 string                                `json:"parent,omitempty"`
	RecaptchaOptionsConfig *SecurityPolicyRecaptchaOptionsConfig `json:"recaptchaOptionsConfig,omitempty"`
	// Region: Output only. [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"`
	// 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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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 (preview only): 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_NETWORK"
	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 {
	// Layer7DdosDefenseConfig: If set to true, enables Cloud Armor Machine
	// Learning.
	Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `json:"layer7DdosDefenseConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Layer7DdosDefenseConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Layer7DdosDefenseConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values 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)
}

// 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 withRFC1035.
	// 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"`
	// RequestBodyInspectionSize: The maximum request size chosen by the customer
	// with Waf enabled.
	// Values supported are "8KB", "16KB, "32KB", "48KB" and "64KB".
	// Values are case insensitive.
	RequestBodyInspectionSize string `json:"requestBodyInspectionSize,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. [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. [Output Only] The security policy ID of the
	// association.
	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
	// ShortName: Output only. [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)
}

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 {
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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 *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. "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 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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.
	//    - fairshare (preview only): when traffic reaches the
	//    threshold limit, requests from the clients matching this rule begin to
	// be
	//    rate-limited using the Fair Share algorithm. This action is only allowed
	//    in security policies of type `CLOUD_ARMOR_INTERNAL_SERVICE`.
	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"`
	// 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. [Output only] Type of the resource.
	// Alwayscompute#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" or
	// "fairshare". 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"`

	// 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 a Cloud
	// Armor Enterprise subscription and are not supported in Edge Policies
	// nor in Regional Policies. Expressions
	// containing
	// `evaluatePreconfiguredExpr('sourceiplist-*')` require a Cloud
	// Armor
	// Enterprise subscription 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:
	//   "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 {
	// 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. "SrcIpRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SrcIpRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values 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 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 toALL.
	//    - 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 toALL.
	//    - 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 toIP.
	//
	// - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the
	// client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the
	// key type defaults to ALL.
	// For "fairshare" action, this value is limited to ALL i.e. a single
	// rate
	// limit threshold is enforced for all the requests matching the rule.
	//
	// Possible values:
	//   "ALL"
	//   "HTTP_COOKIE"
	//   "HTTP_HEADER"
	//   "HTTP_PATH"
	//   "IP"
	//   "REGION_CODE"
	//   "SNI"
	//   "TLS_JA3_FINGERPRINT"
	//   "TLS_JA4_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"`
	// 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 toALL.
	//    - 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 toALL.
	//    - 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 toIP.
	//
	//
	// - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the
	// client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the
	// key type defaults to ALL.
	//
	// Possible values:
	//   "ALL"
	//   "HTTP_COOKIE"
	//   "HTTP_HEADER"
	//   "HTTP_PATH"
	//   "IP"
	//   "REGION_CODE"
	//   "SNI"
	//   "TLS_JA3_FINGERPRINT"
	//   "TLS_JA4_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)
}

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 are:
	//
	//    - GOOGLE_RECAPTCHA: redirect to reCAPTCHA for manual
	//    challenge assessment.
	//    - EXTERNAL_302: redirect to a different URL via a 302
	//    response.
	//
	// 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 {
	// 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 globalBackendService with the
	// loadBalancingScheme set
	// to INTERNAL_SELF_MANAGED.
	//
	//  If left blank, communications are not encrypted.
	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs) that
	// the client
	// verifies during a mutual TLS handshake with an server/endpoint for
	// thisBackendService. When the server presents its X.509 certificate
	// to the client, the client inspects the certificate'ssubjectAltName 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 withloadBalancingScheme set to
	// INTERNAL_SELF_MANAGED.
	// Only applies when BackendService has an attachedclientTlsPolicy with
	// clientCertificate (mTLS
	// mode).
	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AwsV4Authentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AwsV4Authentication") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values 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. [Output Only] Type of the resource.
	// Alwayscompute#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. [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)
}

// 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. [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 or
	// only
	// endpoints.
	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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#serviceAttachment for service attachments.
	Kind string `json:"kind,omitempty"`
	// Metadata: Metadata of the service attachment.
	Metadata map[string]string `json:"metadata,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 withRFC1035.
	// 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. [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. [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. [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"`

	// 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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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"`
	// EndpointWithId: The url of a connected endpoint with resource id.
	EndpointWithId string `json:"endpointWithId,omitempty"`
	// NatIps: NAT IPs of the connected PSC endpoint and those of other
	// endpoints
	// propagated from it.
	NatIps []string `json:"natIps,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. For endpoint_url, the limit
	// should be no
	// more than 1.
	ConnectionLimit int64 `json:"connectionLimit,omitempty"`
	// EndpointUrl: The URL for the PSC endpoint to accept
	EndpointUrl string `json:"endpointUrl,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. [Output Only] Type of the resource.
	// Alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

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 {
	// 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"`
	// ShareType: Type of sharing for this shared-reservation
	//
	// Possible values:
	//   "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. "ProjectMap") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProjectMap") to include in API
	// requests with the JSON null value. By default, fields with empty values 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)
}

// 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. [Output Only] Type of the resource.
	// Alwayscompute#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)
}

// 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
	// withRFC1035.
	// 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 validRFC
	// 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. [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. [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. [Output Only] Size in bytes of the snapshot
	// at creation time.
	CreationSizeBytes int64 `json:"creationSizeBytes,omitempty,string"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] Size of the source disk, specified in
	// GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
	// DownloadBytes: Output only. [Output Only] Number of bytes downloaded to
	// restore a snapshot to a disk.
	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
	// EnableConfidentialCompute: Output only. 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. [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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 error412 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. [Output Only] Integer license codes indicating
	// which licenses are attached
	// to this snapshot.
	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
	// Licenses: Output only. [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"`
	// Name: Name of the resource; provided by the client when the resource is
	// created.
	// The name must be 1-63 characters long, and comply withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *SnapshotParams `json:"params,omitempty"`
	// Region: Output only. [Output Only] URL of the region where the snapshot
	// resides. Only applicable
	// for regional snapshots.
	Region string `json:"region,omitempty"`
	// SatisfiesPzi: Output only. Reserved for future use.
	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
	// SatisfiesPzs: Output only. [Output Only] Reserved for future use.
	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SnapshotEncryptionKey: Encrypts the snapshot using
	// acustomer-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"`
	// SnapshotGroupId: Output only. [Output Only] The unique ID of the snapshot
	// group that this snapshot
	// belongs to. The usage of snapshot group feature is restricted.
	SnapshotGroupId string `json:"snapshotGroupId,omitempty"`
	// SnapshotGroupName: Output only. [Output only] The snapshot group that this
	// snapshot belongs to. The usage
	// of snapshot group feature is restricted.
	SnapshotGroupName string `json:"snapshotGroupName,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. [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. [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 snapshot. For example, if you created the snapshot 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. [Output Only] URL of the resource
	// policy which created this
	// scheduled snapshot.
	SourceSnapshotSchedulePolicy string `json:"sourceSnapshotSchedulePolicy,omitempty"`
	// SourceSnapshotSchedulePolicyId: Output only. [Output Only] ID of the
	// resource policy which created this
	// scheduled snapshot.
	SourceSnapshotSchedulePolicyId string `json:"sourceSnapshotSchedulePolicyId,omitempty"`
	// Status: Output only. [Output Only] The status of the snapshot. This can
	// beCREATING, 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. [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. [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"`

	// 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 SnapshotGroupParameters struct {
	// ReplicaZones: URLs of the zones where disks should be replicated to. Only
	// applicable
	// for regional resources.
	ReplicaZones []string `json:"replicaZones,omitempty"`
	// SourceSnapshotGroup: The source snapshot group used to create disks. 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/snapshotGroups/snapshotGroup
	//
	//    - projects/project/global/snapshotGroups/snapshotGroup
	//      - global/snapshotGroups/snapshotGroup
	SourceSnapshotGroup string `json:"sourceSnapshotGroup,omitempty"`
	// Type: URL of the disk type resource describing which disk type to use to
	// create
	// disks. Provide this when creating the disk. For
	// example:projects/project/zones/zone/diskTypes/pd-ssd. See Persistent
	// disk
	// types.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ReplicaZones") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReplicaZones") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SnapshotGroupParameters) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotGroupParameters
	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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// SnapshotParams: Additional snapshot params.
type SnapshotParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// snapshot. Tag keys and values have
	// the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 SnapshotParams) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotParams
	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"`
	// Policy: Policy of which location is allowed to access snapshot.
	//
	// Possible values:
	//   "ALL_REGIONS" - Any regions will be able to access the source location.
	//   "POLICY_UNSPECIFIED"
	//   "SPECIFIC_REGIONS" - Only allowlisted regions will be able to restore
	// region scoped
	// snapshots
	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 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 SnapshotUpdateKmsKeyRequest struct {
	// KmsKeyName: Optional. The new KMS key to replace the current one on the
	// snapshot. If empty, the
	// snapshot will be re-encrypted using the primary version of the
	// snapshot's
	// current KMS key.
	//
	// The KMS key can be provided in the following formats:
	//
	//
	//      - projects/project_id/locations/region/keyRings/key_ring/cryptoKeys/key
	KmsKeyName string `json:"kmsKeyName,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 SnapshotUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod SnapshotUpdateKmsKeyRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type SourceDiskEncryptionKey struct {
	// DiskEncryptionKey: Thecustomer-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 tofalse. See theEnable 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. SeeProject 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" orminCpuPlatform: "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 withRFC1035.
	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/v1/sslCertificates)
// * Regional (/compute/docs/reference/rest/v1/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 inRFC3339
	// 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. [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. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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. [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"`
	// SelfManaged: Configuration and status of a self-managed SSL certificate.
	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
	// SubjectAlternativeNames: Output only. [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
	// fieldscertificate 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Unique identifier for the resource; defined
	// by the server.
	Id string `json:"id,omitempty"`
	// Items: Output only. A list of SslPolicy resources.
	Items []*SslPolicy `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#sslPoliciesList for lists of sslPolicies.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Creation timestamp
	// inRFC3339
	// 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
	// notCUSTOM.
	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. [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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output only] Type of the resource.
	// Alwayscompute#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 ofTLS_1_0,
	// TLS_1_1, TLS_1_2,TLS_1_3. When set to TLS_1_3, the profile field
	// must be set to RESTRICTED.
	//
	// Possible values:
	//   "TLS_1_0" - TLS 1.0
	//   "TLS_1_1" - TLS 1.1
	//   "TLS_1_2" - TLS 1.2
	//   "TLS_1_3" - TLS 1.3
	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"`
	// PostQuantumKeyExchange: One of DEFAULT, ENABLED, orDEFERRED. Controls
	// whether the load balancer negotiates
	// X25519MLKEM768 key exchange when clients advertise support for it. When
	// set
	// to DEFAULT, or if no SSL Policy is attached to the target
	// proxy, the load balancer disallows X25519MLKEM768 key exchange
	// before
	// October 2026, and allows it afterward. When set to ENABLED,
	// the load balancer allows X25519MLKEM768 key exchange. When set toDEFERRED,
	// the load balancer disallows X25519MLKEM768 key
	// exchange until October 2027, and allows it afterward.
	//
	// Possible values:
	//   "DEFAULT" - Default behavior: disabled until October 2026, enabled
	// afterward.
	//   "DEFERRED" - Disabled until October 2027, enabled afterward.
	//   "ENABLED" - Enabled now.
	PostQuantumKeyExchange string `json:"postQuantumKeyExchange,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 ofCOMPATIBLE,
	// MODERN, RESTRICTED,FIPS_202205, or CUSTOM. If usingCUSTOM, the set of SSL
	// features to enable must be specified in
	// the customFeatures field. If using FIPS_202205,
	// the min_tls_version field must be set to TLS_1_2.
	//
	// 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.
	//   "FIPS_202205" - FIPS compatible profile. Supports a reduced set of SSL
	// features,
	// intended to meet FIPS 140-3 compliance requirements.
	//   "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. [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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Warnings: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 inREAD_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. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// ExapoolProvisionedCapacityGb: Output only. [Output Only] Provisioned
	// capacities for each SKU for this Exapool in GiB
	ExapoolProvisionedCapacityGb *StoragePoolExapoolProvisionedCapacityGb `json:"exapoolProvisionedCapacityGb,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 error412 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 withRFC1035.
	// 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"`
	// Params: Input only. Additional params passed with the request, but not
	// persisted
	// as part of resource payload.
	Params *StoragePoolParams `json:"params,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 of the storage pool in GiB. 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 in
	// MiB/s. Only relevant if the
	// storage pool type is hyperdisk-balanced or hyperdisk-throughput.
	PoolProvisionedThroughput int64 `json:"poolProvisionedThroughput,omitempty,string"`
	// ResourceStatus: Output only. [Output Only] Status information for the
	// storage pool resource.
	ResourceStatus *StoragePoolResourceStatus `json:"resourceStatus,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource's resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// State: Output only. [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. [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. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Instances this disk is
	// attached to.
	AttachedInstances []string `json:"attachedInstances,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Disk: Output only. [Output Only] The URL of the disk.
	Disk string `json:"disk,omitempty"`
	// Name: Output only. [Output Only] The name of the disk.
	Name string `json:"name,omitempty"`
	// ProvisionedIops: Output only. [Output Only] The number of IOPS provisioned
	// for the disk.
	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
	// ProvisionedThroughput: Output only. [Output Only] The throughput provisioned
	// for the disk.
	ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"`
	// ResourcePolicies: Output only. [Output Only] Resource policies applied to
	// disk for automatic snapshot
	// creations.
	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
	// SizeGb: Output only. [Output Only] The disk size, in GB.
	SizeGb int64 `json:"sizeGb,omitempty,string"`
	// Status: Output only. [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. [Output Only] The disk type.
	Type string `json:"type,omitempty"`
	// UsedBytes: Output only. [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)
}

// StoragePoolExapoolProvisionedCapacityGb: Exapool provisioned capacities for
// each SKU type
type StoragePoolExapoolProvisionedCapacityGb struct {
	// CapacityOptimized: Size, in GiB, of provisioned capacity-optimized capacity
	// for this Exapool
	CapacityOptimized int64 `json:"capacityOptimized,omitempty,string"`
	// ReadOptimized: Size, in GiB, of provisioned read-optimized capacity for this
	// Exapool
	ReadOptimized int64 `json:"readOptimized,omitempty,string"`
	// WriteOptimized: Size, in GiB, of provisioned write-optimized capacity for
	// this Exapool
	WriteOptimized int64 `json:"writeOptimized,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CapacityOptimized") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CapacityOptimized") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s StoragePoolExapoolProvisionedCapacityGb) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolExapoolProvisionedCapacityGb
	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. [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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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. [Output Only] Type of resource.
	// Alwayscompute#storagePoolListDisks for lists of disks in a
	// storagePool.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable
	// resources.
	// end_interface: MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: Output only. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// StoragePoolParams: Additional storage pool params.
type StoragePoolParams struct {
	// ResourceManagerTags: Input only. Resource manager tags to be bound to the
	// storage pool. Tag keys and values
	// have the same definition as resource
	// manager tags. Keys and values can be either in numeric format,
	// such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or
	// in
	// namespaced format such as `{org_id|project_id}/{tag_key_short_name}`
	// and
	// `{tag_value_short_name}`. 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 StoragePoolParams) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// StoragePoolResourceStatus: [Output Only] Contains output only fields.
type StoragePoolResourceStatus struct {
	// DiskCount: [Output Only] Number of disks used.
	DiskCount int64 `json:"diskCount,omitempty,string"`
	// ExapoolMaxReadIops: Output only. [Output Only] Maximum allowed read IOPS for
	// this Exapool.
	ExapoolMaxReadIops int64 `json:"exapoolMaxReadIops,omitempty,string"`
	// ExapoolMaxReadThroughput: Output only. [Output Only] Maximum allowed read
	// throughput in MiB/s for
	// this Exapool.
	ExapoolMaxReadThroughput int64 `json:"exapoolMaxReadThroughput,omitempty,string"`
	// ExapoolMaxWriteIops: Output only. [Output Only] Maximum allowed write IOPS
	// for this Exapool.
	ExapoolMaxWriteIops int64 `json:"exapoolMaxWriteIops,omitempty,string"`
	// ExapoolMaxWriteThroughput: Output only. [Output Only] Maximum allowed write
	// throughput in MiB/s
	// for this Exapool.
	ExapoolMaxWriteThroughput int64 `json:"exapoolMaxWriteThroughput,omitempty,string"`
	// LastResizeTimestamp: Output only. [Output Only] Timestamp of the last
	// successful resize inRFC3339 text format.
	LastResizeTimestamp string `json:"lastResizeTimestamp,omitempty"`
	// MaxTotalProvisionedDiskCapacityGb: [Output Only] Maximum allowed aggregate
	// disk size in GiB.
	MaxTotalProvisionedDiskCapacityGb int64 `json:"maxTotalProvisionedDiskCapacityGb,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 MiB/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 disks'
	// provisioned capacity (in GiB) 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 MiB/s,
	// minus some amount that is allowed per disk that is not counted
	// towards
	// pool's throughput capacity.
	TotalProvisionedDiskThroughput int64 `json:"totalProvisionedDiskThroughput,omitempty,string"`
	// 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 StoragePoolResourceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod StoragePoolResourceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type StoragePoolType struct {
	// CreationTimestamp: [Output Only] Creation timestamp inRFC3339
	// 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. [Output Only] Type of the resource.
	// Alwayscompute#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. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

// 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 {
	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork's ranges can conflict
	// with existing custom routes.
	// Setting this to true allows this subnetwork's primary and secondary
	// ranges
	// to overlap with (and contain) custom 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.
	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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 toREGIONAL_MANAGED_PROXY. It is
	// recommended to uselogConfig.enable field instead.
	EnableFlowLogs bool `json:"enableFlowLogs,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"`
	// GatewayAddress: Output only. [Output Only] The gateway address for default
	// routes to reach destination
	// addresses outside this subnetwork.
	GatewayAddress string `json:"gatewayAddress,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InternalIpv6Prefix: The internal IPv6 address range that is owned by
	// 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 theValid
	// ranges list. The range can be expanded after creation
	// usingexpandIpCidrRange.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// IpCollection: Reference to the source of IP, like a
	// PublicDelegatedPrefix
	// (PDP) for BYOIP. The PDP must be a sub-PDP
	// in
	// EXTERNAL_IPV6_SUBNETWORK_CREATION or
	// INTERNAL_IPV6_SUBNETWORK_CREATION
	// mode.
	//
	// Use one of the following formats to specify a sub-PDP when creating a
	// dual
	// stack or IPv6-only subnetwork with external access using BYOIP:
	//
	//    -
	//    Full resource URL, as
	// inhttps://www.googleapis.com/compute/v1/projects/projectId/regions/region/pub
	// licDelegatedPrefixes/sub-pdp-name
	//    -
	//    Partial URL, as in
	//
	//
	//           -
	// projects/projectId/regions/region/publicDelegatedPrefixes/sub-pdp-name
	//           - regions/region/publicDelegatedPrefixes/sub-pdp-name
	IpCollection string `json:"ipCollection,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. [Output Only] This field is for internal use.
	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
	// Ipv6GceEndpoint: Output only. [Output Only] Possible endpoints of this
	// subnetwork. It can be one of the
	// following:
	//
	//    - VM_ONLY: The subnetwork can be used for creating instances and
	//    IPv6 addresses with VM endpoint type. Such a subnetwork gets external
	// IPv6
	//    ranges from a public delegated prefix and cannot be used to create
	// NetLb.
	//    - VM_AND_FR: The subnetwork can be used for creating both VM
	//    instances and Forwarding Rules. It can also be used to reserve IPv6
	//    addresses with both VM and FR endpoint types. Such a subnetwork gets its
	//    IPv6 range from Google IP Pool directly.
	//
	// Possible values:
	//   "VM_AND_FR"
	//   "VM_ONLY"
	Ipv6GceEndpoint string `json:"ipv6GceEndpoint,omitempty"`
	// Kind: Output only. [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"`
	// 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
	// withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *SubnetworkParams `json:"params,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 usingpatch.
	//
	// 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"`
	// Possible values:
	//   "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.
	//   "PEER_MIGRATION" - Subnetwork will be used for Migration from one peered
	// VPC to another.
	// (a transient state of subnetwork
	// while migrating resources from one project to another).
	//   "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"`
	// ResolveSubnetMask: Configures subnet mask resolution for this subnetwork.
	//
	// Possible values:
	//   "ARP_ALL_RANGES" - All ranges assigned to the VM NIC will respond to ARP.
	//   "ARP_PRIMARY_RANGE" - Only the primary range of the VM NIC will respond to
	// ARP.
	ResolveSubnetMask string `json:"resolveSubnetMask,omitempty"`
	// Role: The role of subnetwork. Currently, this field is only used
	// when
	// purpose is set to GLOBAL_MANAGED_PROXY orREGIONAL_MANAGED_PROXY. The value
	// can be set toACTIVE 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 apatch request.
	// Supports both IPv4 and IPv6 ranges.
	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
	// SelfLink: [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,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 toIPV4_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 usingpatch.
	//
	// 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. [Output Only] The state of the subnetwork, which can be
	// one of the
	// following values:READY: Subnetwork is created and ready to useDRAINING: 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 ofREADY
	//
	// Possible values:
	//   "DRAINING" - Subnetwork is being drained.
	//   "READY" - Subnetwork is ready for use.
	State string `json:"state,omitempty"`
	// SystemReservedExternalIpv6Ranges: Output only. [Output Only] The array of
	// external IPv6 network ranges reserved from
	// the subnetwork's external IPv6 range for system use.
	SystemReservedExternalIpv6Ranges []string `json:"systemReservedExternalIpv6Ranges,omitempty"`
	// SystemReservedInternalIpv6Ranges: Output only. [Output Only] The array of
	// internal IPv6 network ranges reserved from
	// the subnetwork's internal IPv6 range for system use.
	SystemReservedInternalIpv6Ranges []string `json:"systemReservedInternalIpv6Ranges,omitempty"`
	// UtilizationDetails: Output only. [Output Only] The current IP utilization of
	// all subnetwork ranges. Contains
	// the total number of allocated and free IPs in each range.
	UtilizationDetails *SubnetworkUtilizationDetails `json:"utilizationDetails,omitempty"`

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

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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 isEXCLUDE_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
}

// SubnetworkParams: Additional subnetwork parameters.
type SubnetworkParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	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 SubnetworkParams) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// 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. Both IPv4 and IPv6 ranges are supported. For IPv4,
	// the range can be any range listed in theValid
	// ranges list.
	//
	// For IPv6:
	// The range must have a /64 prefix length.
	// The range must be omitted, for auto-allocation from Google-defined ULA
	// IPv6 range.
	// For BYOGUA internal IPv6 secondary range, the range may be specified
	// along with the `ipCollection` field.
	// If an `ipCollection` is specified, the requested ip_cidr_range must
	// lie
	// within the range of the PDP referenced by the `ipCollection` field
	// for
	// allocation.
	// If `ipCollection` field is specified, but ip_cidr_range is not,
	// the range is auto-allocated from the PDP referenced by the
	// `ipCollection`
	// field.
	IpCidrRange string `json:"ipCidrRange,omitempty"`
	// RangeName: The name associated with this subnetwork secondary range, used
	// when adding
	// an alias IP/IPv6 range to a VM instance.
	// The name must be 1-63 characters long, and comply withRFC1035.
	// The name must be unique within the subnetwork.
	RangeName string `json:"rangeName,omitempty"`
	// ReservedInternalRange: The URL of the reserved internal range. Only IPv4 is
	// supported.
	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)
}

// SubnetworkUtilizationDetails: The current IP utilization of all subnetwork
// ranges. Contains the total
// number of allocated and free IPs in each range.
type SubnetworkUtilizationDetails struct {
	// ExternalIpv6InstanceUtilization: Utilizations of external IPV6 IP range.
	ExternalIpv6InstanceUtilization *SubnetworkUtilizationDetailsIPV6Utilization `json:"externalIpv6InstanceUtilization,omitempty"`
	// ExternalIpv6LbUtilization: Utilizations of external IPV6 IP range for NetLB.
	ExternalIpv6LbUtilization *SubnetworkUtilizationDetailsIPV6Utilization `json:"externalIpv6LbUtilization,omitempty"`
	// InternalIpv6Utilization: Utilizations of internal IPV6 IP range.
	InternalIpv6Utilization *SubnetworkUtilizationDetailsIPV6Utilization `json:"internalIpv6Utilization,omitempty"`
	// Ipv4Utilizations: Utilizations of all IPV4 IP ranges. For primary ranges,
	// the range name
	// will be empty.
	Ipv4Utilizations []*SubnetworkUtilizationDetailsIPV4Utilization `json:"ipv4Utilizations,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ExternalIpv6InstanceUtilization") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIpv6InstanceUtilization")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SubnetworkUtilizationDetailsIPV4Utilization: The IPV4 utilization of a
// single IP range.
type SubnetworkUtilizationDetailsIPV4Utilization struct {
	// RangeName: Will be set for secondary range. Empty for primary IPv4 range.
	RangeName        string `json:"rangeName,omitempty"`
	TotalAllocatedIp int64  `json:"totalAllocatedIp,omitempty,string"`
	TotalFreeIp      int64  `json:"totalFreeIp,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "RangeName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RangeName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SubnetworkUtilizationDetailsIPV6Utilization: The IPV6 utilization of a
// single IP range.
type SubnetworkUtilizationDetailsIPV6Utilization struct {
	TotalAllocatedIp *Uint128 `json:"totalAllocatedIp,omitempty"`
	TotalFreeIp      *Uint128 `json:"totalFreeIp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TotalAllocatedIp") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TotalAllocatedIp") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s SubnetworkUtilizationDetailsIPV6Utilization) MarshalJSON() ([]byte, error) {
	type NoMethod SubnetworkUtilizationDetailsIPV6Utilization
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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"`
	// 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 through65535.
	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 theport 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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [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. [Output Only] Type of the resource.
	// Alwayscompute#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 thanmaxResults, 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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/v1/targetHttpProxies)
// * Regional (/compute/docs/reference/rest/v1/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, readUsing Target
// Proxies
// and
// Forwarding rule concepts.
type TargetHttpProxy struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// 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. [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 withRFC1035.
	// 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 toINTERNAL_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. [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"`
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,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)
}

// 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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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/v1/targetHttpsProxies)
// * Regional (/compute/docs/reference/rest/v1/regionTargetHttpsProxies)
//
// A target HTTPS proxy is a component of Google Cloud HTTPS load balancers.
//
// * targetHttpsProxies are used by global external Application Load
// Balancers,
//
//	classic Application Load Balancers, cross-region internal Application
//
// Load
//
//		Balancers, and Traffic Director.
//	  - regionTargetHttpsProxies 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, readUsing Target
// Proxies
// and
// Forwarding rule concepts.
type TargetHttpsProxy struct {
	// 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 globalTargetHttpsProxy attached
	// toglobalForwardingRules with theloadBalancingScheme 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. [Output Only] Creation timestamp
	// inRFC3339
	// 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"`
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 withRFC1035.
	// 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 toINTERNAL_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, orDISABLE.
	//
	//    - 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. [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"`
	// ServerTlsPolicy: Optional. A URL referring to a
	// networksecurity.ServerTlsPolicy resource
	// that describes how the proxy should authenticate inbound traffic.
	//
	//  serverTlsPolicy only applies to a globalTargetHttpsProxy attached
	// toglobalForwardingRules with theloadBalancingScheme set to
	// INTERNAL_SELF_MANAGED
	// or EXTERNAL orEXTERNAL_MANAGED or INTERNAL_MANAGED.
	// It also applies to a regional TargetHttpsProxy attached to
	// regional forwardingRules with theloadBalancingScheme set to EXTERNAL_MANAGED
	// orINTERNAL_MANAGED. For details whichServerTlsPolicy resources are accepted
	// withINTERNAL_SELF_MANAGED and which with EXTERNAL,INTERNAL_MANAGED,
	// EXTERNAL_MANAGEDloadBalancingScheme 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 namespace. Using Certificate Manager
	// Certificates in this field is 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 or up to
	// 100
	// Certificate Manager Certificates.
	//
	// Certificate Manager Certificates accepted formats are:
	//
	//    -
	// //certificatemanager.googleapis.com/projects/{project}/locations/{location}/c
	// ertificates/{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.
	//   "UNRESTRICTED" - This enables TLS 1.3 Early Data for requests with any
	// HTTP method
	// including non-idempotent methods list POST. This mode does not enforce
	// any other limitations. This may be valuable for gRPC use cases. However,
	// we do not recommend this method unless you have evaluated your
	// security
	// stance and mitigated the risk of replay attacks using other mechanisms.
	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. "AuthorizationPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuthorizationPolicy") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, readTarget
// instances.
type TargetInstance struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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"`
	// Zone: Output only. [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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, readUsing 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 belowfailoverRatio, 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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [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 withRFC1035.
	// 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. [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"`
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, readProxy
// 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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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, readProxy
// Network
// Load Balancer overview.
type TargetTcpProxy struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] Type of the resource.
	// Alwayscompute#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 withRFC1035.
	// 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 toINTERNAL_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. [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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 thethe
// Cloud VPN Overview.
type TargetVpnGateway struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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 usingcompute.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. [Output Only] Type of resource.
	// Alwayscompute#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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *TargetVpnGatewayParams `json:"params,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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 TargetVpnGatewayParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	// * Inconsistent format is not supported. For instance:
	//   {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid.
	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 TargetVpnGatewayParams) MarshalJSON() ([]byte, error) {
	type NoMethod TargetVpnGatewayParams
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

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"`
	// LatestWindowStartTime: The latest time for the planned maintenance window to
	// start.
	// This timestamp value is in RFC3339 text format.
	LatestWindowStartTime string `json:"latestWindowStartTime,omitempty"`
	// MaintenanceOnShutdown: Indicates whether the UpcomingMaintenance will be
	// triggered on VM shutdown.
	MaintenanceOnShutdown bool `json:"maintenanceOnShutdown,omitempty"`
	// MaintenanceReasons: The reasons for the maintenance. Only valid for vms.
	//
	// Possible values:
	//   "FAILURE_DISK" - Maintenance due to disk errors.
	//   "FAILURE_GPU" - Maintenance due to GPU errors.
	//   "FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED" - Maintenance due to
	// customer reported multiple faulty hosts via R&R
	// Subblock API.
	//   "FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED" - Maintenance due to
	// customer reported NVLink switch failure via R&R
	// Subblock API.
	//   "FAILURE_GPU_TEMPERATURE" - Maintenance due to high GPU temperature.
	//   "FAILURE_GPU_XID" - Maintenance due to GPU xid failure.
	//   "FAILURE_INFRA" - Maintenance due to infrastructure errors.
	//   "FAILURE_INTERFACE" - Maintenance due to interface errors.
	//   "FAILURE_MEMORY" - Maintenance due to memory errors.
	//   "FAILURE_NETWORK" - Maintenance due to network errors.
	//   "FAILURE_NVLINK" - Maintenance due to NVLink failure.
	//   "FAILURE_REDUNDANT_HARDWARE_FAULT" - Maintenance due to redundant hardware
	// fault.
	//   "FAILURE_TPU" - Maintenance due to TPU errors.
	//   "INFRASTRUCTURE_RELOCATION" - Maintenance due to infrastructure
	// relocation.
	//   "MAINTENANCE_REASON_UNKNOWN" - Unknown maintenance reason. Do not use this
	// value.
	//   "PLANNED_NETWORK_UPDATE" - Maintenance due to planned network update.
	//   "PLANNED_UPDATE" - Maintenance due to planned update to the instance.
	MaintenanceReasons []string `json:"maintenanceReasons,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"`
	// Type: Defines the type of maintenance.
	//
	// Possible values:
	//   "MULTIPLE" - Multiple maintenance types in one window.
	// This is only intended to be used for groups.
	//   "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)
}

// UrlMap: Represents a URL Map resource.
//
// Compute Engine has two URL Map resources:
//
// * Global (/compute/docs/reference/rest/v1/urlMaps)
// * Regional (/compute/docs/reference/rest/v1/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,EXTERNAL_MANAGED, or
// INTERNAL_SELF_MANAGED. To use
// the regionUrlMaps resource, the backend service must have
// aloadBalancingScheme of INTERNAL_MANAGED. For more
// information, read URL
// Map Concepts.
type UrlMap struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// DefaultCustomErrorResponsePolicy: defaultCustomErrorResponsePolicy specifies
	// how the Load
	// Balancer returns error responses when BackendServiceorBackendBucket 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 a404, the policy
	// inpathMatcher.defaultCustomErrorResponsePolicy will be enforced.
	// When the request for http://www.example.com/ encounters a502, the policy
	// inUrlMap.defaultCustomErrorResponsePolicy will be enforced. When
	// a request that does not match any host in *.example.com such
	// as http://www.myotherexample.com/, encounters a404,
	// UrlMap.defaultCustomErrorResponsePolicy
	// takes effect.
	//
	// When used in conjunction withdefaultRouteAction.retryPolicy, retries take
	// precedence. Only
	// once all retries are exhausted, thedefaultCustomErrorResponsePolicy 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.
	//
	//
	// Only one of defaultUrlRedirect, defaultService
	// or defaultRouteAction.weightedBackendService can 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.
	//
	//
	// Only one of defaultUrlRedirect, defaultService
	// or defaultRouteAction.weightedBackendService can be set.
	//
	//
	// 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.
	//
	//
	// Only one of defaultUrlRedirect, defaultService
	// or defaultRouteAction.weightedBackendService can 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 afterheaderAction 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. [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 withRFC1035.
	// 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. [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 theUrlMap
	// 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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 {
	// 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
	// whenexpectedOutputUrl matches the request forwarded by
	// the load balancer to backends. For rules with urlRewrite,
	// the test verifies that the forwarded request matcheshostRewrite and
	// pathPrefixRewrite in theurlRewrite action. When service is
	// specified,expectedOutputUrl`s scheme is ignored.
	//
	// For rules with urlRedirect, the test passes only ifexpectedOutputUrl matches
	// the URL in the load balancer's
	// redirect response. If urlRedirect specifieshttps_redirect, the test passes
	// only if the scheme inexpectedOutputUrl 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 whenservice is specified.
	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
	// ExpectedRedirectResponseCode: For rules with urlRedirect, the test passes
	// only ifexpectedRedirectResponseCode matches the HTTP status code in
	// load balancer's redirect response.
	//
	// expectedRedirectResponseCode cannot be set whenservice is set.
	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,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. "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 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: Output only. 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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. UseEXTERNAL_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 bypathPrefixRewrite.
	//
	// 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 orpath_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. [Output Only] The external IPv6 address
	// range that is assigned to this
	// subnetwork.
	ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"`
	// InternalIpv6Prefix: Output only. [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"`
	// Possible values:
	//   "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.
	//   "PEER_MIGRATION" - Subnetwork will be used for Migration from one peered
	// VPC to another.
	// (a transient state of subnetwork
	// while migrating resources from one project to another).
	//   "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 orREGIONAL_MANAGED_PROXY. The value
	// can be set toACTIVE 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 toIPV4_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 usingpatch.
	//
	// 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.
	// Can be Ipv4 or Ipv6 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 withRFC1035.
	// 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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 andnextPageToken which
	// still should be used to get the
	// next page of results.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ScopedWarnings: Output only. [Output Only] Informational warning messages
	// for failures encountered from
	// scopes.
	ScopedWarnings []*SubnetworksScopedWarning `json:"scopedWarnings,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	// asexample-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 inbucketName. If not supplied, defaults tousage_gce. The report is
	// stored as a CSV file namedreport_name_prefix_gce_YYYYMMDD.csv whereYYYYMMDD
	// is the day of the usage according to Pacific Time.
	// If you supply a prefix, it should conform to Cloud Storageobject
	// 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: Output only. 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: Output only. 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: Output only. 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: Output only. 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: Output only. 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: Output only. Information about mappings provided by rules in
	// this NAT.
	RuleMappings []*VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings `json:"ruleMappings,omitempty"`
	// SourceAliasIpRange: Output only. 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: Output only. 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: Output only. 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: Output only. 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: Output only. 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: Output only. 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: Output only. 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. [Output Only] Type of resource.
	// Alwayscompute#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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

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

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

// VmExtensionPoliciesScopedListWarning: Informational warning which replaces
// the list of
// backend services when the list is empty.
type VmExtensionPoliciesScopedListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*VmExtensionPoliciesScopedListWarningData `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 VmExtensionPoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPoliciesScopedListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VmExtensionPoliciesScopedListWarningData 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 VmExtensionPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPoliciesScopedListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmExtensionPolicy: Represents a VM extension policy.
type VmExtensionPolicy struct {
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of this resource.
	Description string `json:"description,omitempty"`
	// ExtensionPolicies: Required. A map of extension names (for example,
	// "ops-agent") to their corresponding
	// policy configurations.
	ExtensionPolicies map[string]VmExtensionPolicyExtensionPolicy `json:"extensionPolicies,omitempty"`
	// GlobalResourceLink: Optional. Output only. [Output Only] Link to the global
	// policy that manages this zone policy, if
	// applicable.
	GlobalResourceLink string `json:"globalResourceLink,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// InstanceSelectors: Optional. Selectors to target VMs for this policy. VMs
	// are selected if they match
	// *any* of the provided selectors (logical OR). If this list is empty,
	// the
	// policy applies to all VMs.
	InstanceSelectors []*VmExtensionPolicyInstanceSelector `json:"instanceSelectors,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#vmExtensionPolicy.
	Kind string `json:"kind,omitempty"`
	// ManagedByGlobal: Optional. Output only. [Output Only] Indicates if this
	// policy is managed by a global policy.
	ManagedByGlobal bool `json:"managedByGlobal,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 withRFC1035.
	// 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"`
	// Priority: Optional. Priority of this policy. Used to resolve conflicts when
	// multiple policies
	// apply to the same extension.
	// The policy priority is an integer from 0 to 65535, inclusive. Lower
	// integers indicate higher priorities. If you do not specify a priority
	// when
	// creating a rule, it is assigned a priority of 1000. If priorities are
	// equal, the policy with the most recent creation timestamp takes precedence.
	Priority int64 `json:"priority,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for
	// this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// SelfLinkWithId: Output only. [Output Only] Server-defined URL for this
	// resource's resource id.
	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
	// State: Optional. Output only. [Output Only] Current state of the policy:
	// ACTIVE or DELETING.
	//
	// Possible values:
	//   "ACTIVE" - The policy is active and applied to matching VMs.
	// Newly created VMs that match the policy will also receive the
	// extension policy.
	//   "DELETING" - The policy is in the process of being deleted. After the
	// extension is
	// removed from all matching VMs, the policy will be deleted.
	//   "STATE_UNSPECIFIED" - Default value. Do not use.
	State string `json:"state,omitempty"`
	// UpdateTimestamp: Output only. [Output Only] Update timestamp inRFC3339
	// text format.
	UpdateTimestamp string `json:"updateTimestamp,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 VmExtensionPolicy) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPolicy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmExtensionPolicyAggregatedListResponse: Response for the aggregated list of
// VM extension policies.
type VmExtensionPolicyAggregatedListResponse 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 VmExtensionPoliciesScopedList resources.
	Items map[string]VmExtensionPoliciesScopedList `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of resource.
	// Alwayscompute#VmExtensionPolicyAggregatedList for lists
	// of
	// VmExtensionPolicies.
	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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *VmExtensionPolicyAggregatedListResponseWarning `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 VmExtensionPolicyAggregatedListResponse) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPolicyAggregatedListResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmExtensionPolicyAggregatedListResponseWarning: [Output Only] Informational
// warning message.
type VmExtensionPolicyAggregatedListResponseWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*VmExtensionPolicyAggregatedListResponseWarningData `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 VmExtensionPolicyAggregatedListResponseWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPolicyAggregatedListResponseWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VmExtensionPolicyAggregatedListResponseWarningData 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 VmExtensionPolicyAggregatedListResponseWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPolicyAggregatedListResponseWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmExtensionPolicyExtensionPolicy: Configuration for a specific VM extension.
type VmExtensionPolicyExtensionPolicy struct {
	// PinnedVersion: Optional. The specific version of the extension to install.
	// If not set, the latest
	// version is used.
	PinnedVersion string `json:"pinnedVersion,omitempty"`
	// StringConfig: Optional. String-based configuration data for the extension.
	StringConfig string `json:"stringConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PinnedVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PinnedVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// VmExtensionPolicyInstanceSelector: Defines how to select VMs to apply a zone
// VM extension policy.
type VmExtensionPolicyInstanceSelector struct {
	// LabelSelector: Optional. LabelSelector selects VMs based on their labels.
	LabelSelector *VmExtensionPolicyLabelSelector `json:"labelSelector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LabelSelector") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LabelSelector") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// VmExtensionPolicyLabelSelector: A LabelSelector is applied to a VM only if
// it matches all the specified
// labels.
type VmExtensionPolicyLabelSelector struct {
	// InclusionLabels: Optional. A map of key-value pairs representing VM
	// labels.
	// VMs must have all of the labels specified in this map to be
	// selected
	// (logical AND).
	//
	// e.g. If the `inclusion_labels` are {("key1", "value1"), ("key2",
	// "value2")}, the VM labels must contain both ("key1", "value1") and
	// ("key2", "value2") to be selected. If the VM labels are ("key1",
	// "value1") and ("something", "else"), it will not be selected.
	//
	// If the map is empty, it's considered a match.
	InclusionLabels map[string]string `json:"inclusionLabels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InclusionLabels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InclusionLabels") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type VmExtensionPolicyList struct {
	// Etag: Output only. [Output Only] 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 VmExtensionPolicy. An up-to-date
	// fingerprint must be provided in order to update the VmExtensionPolicy.
	//
	// To see the latest value of the fingerprint, make a get() request to
	// retrieve a VmExtensionPolicy.
	Etag string `json:"etag,omitempty"`
	// Id: Output only. [Output Only] Unique identifier for the resource; defined
	// by the server.
	Id string `json:"id,omitempty"`
	// Items: Output only. [Output Only] A list of VM extension policy resources.
	Items []*VmExtensionPolicy `json:"items,omitempty"`
	// Kind: Output only. Type of resource.
	Kind string `json:"kind,omitempty"`
	// NextPageToken: Output only. [Output Only] This token allows you to get the
	// next page of results for
	// list requests. If the number of results is larger thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [Output Only] Unreachable resources.
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: Output only. [Output Only] Informational warning message.
	Warning *VmExtensionPolicyListWarning `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 VmExtensionPolicyList) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPolicyList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// VmExtensionPolicyListWarning: Output only. [Output Only] Informational
// warning message.
type VmExtensionPolicyListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*VmExtensionPolicyListWarningData `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 VmExtensionPolicyListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPolicyListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VmExtensionPolicyListWarningData 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 VmExtensionPolicyListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod VmExtensionPolicyListWarningData
	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. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [Output Only] The unique identifier for the resource. This
	// identifier is
	// defined by the server.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *VpnGatewayParams `json:"params,omitempty"`
	// Region: Output only. [Output Only] URL of the region where the VPN gateway
	// resides.
	Region string `json:"region,omitempty"`
	// SelfLink: Output only. [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 isIPV4, or IPV4_IPV6
	// if the gateway IP version isIPV6.
	//
	// 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. [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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 VpnGatewayParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	// * Inconsistent format is not supported. For instance:
	//   {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid.
	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 VpnGatewayParams) MarshalJSON() ([]byte, error) {
	type NoMethod VpnGatewayParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type VpnGatewayStatus struct {
	// VpnConnections: Output only. 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: Output only. The VPN gateway interface this VPN
	// tunnel is associated with.
	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
	// PeerGatewayInterface: Output only. 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: Output only. 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: Output only. 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: Output only. 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. [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. [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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 {
	// CipherSuite: User specified list of ciphers to use for the phase 1 and phase
	// 2 of the
	// IKE protocol.
	CipherSuite *VpnTunnelCipherSuite `json:"cipherSuite,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// 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. [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 error412 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
	// thesetLabels method. Each label key/value pair must comply
	// withRFC1035.
	// 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 for Classic VPN tunnels. This field is output
	// only
	// for HA VPN tunnels.
	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 withRFC1035.
	// 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"`
	// Params: Input only. [Input Only] Additional params passed with the request,
	// but not persisted
	// as part of resource payload.
	Params *VpnTunnelParams `json:"params,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. This
	// field can
	// be set only for Classic VPN tunnels.
	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 for Classic VPN tunnels. This field is output only for HA
	// VPN
	// tunnels.
	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.
	// This field can be set only for Classic VPN tunnels.
	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. "CipherSuite") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CipherSuite") to include in API
	// requests with the JSON null value. By default, fields with empty values 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. [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 thanmaxResults, 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. [Output Only] Server-defined URL for this resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Unreachables: Output only. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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)
}

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

func (s VpnTunnelCipherSuite) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelCipherSuite
	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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 VpnTunnelParams struct {
	// ResourceManagerTags: Tag keys/values directly bound to this resource.
	// Tag keys and values have the same definition as resource
	// manager tags. The field is allowed for INSERT
	// only. The keys/values to set on the resource should be specified in
	// either ID { : } or Namespaced format
	// { : }.
	// For example the following are valid inputs:
	// * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"}
	// * {"123/environment" : "production", "345/abc" : "xyz"}
	// Note:
	// * Invalid combinations of ID & namespaced format is not supported. For
	//   instance: {"123/environment" : "tagValues/444"} is invalid.
	// * Inconsistent format is not supported. For instance:
	//   {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid.
	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 VpnTunnelParams) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelParams
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

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

func (s VpnTunnelPhase2Algorithms) MarshalJSON() ([]byte, error) {
	type NoMethod VpnTunnelPhase2Algorithms
	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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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
	// thisbackendServiceWeight.
	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 beforeheaderAction 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 asweight / (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)
}

// Wire: A pseudowire that connects two Interconnect connections.
type Wire struct {
	// AdminEnabled: Output only. [Output Only] Indicates whether the wire is
	// enabled.
	// When false, the wire is disabled. When true and when the wire group of
	// the wire is also enabled, the wire is enabled. Defaults to true.
	AdminEnabled bool `json:"adminEnabled,omitempty"`
	// Endpoints: Output only. Wire endpoints are specific Interconnect
	// connections.
	Endpoints []*WireEndpoint `json:"endpoints,omitempty"`
	// Label: Output only. [Output Only] A label that identifies the wire. The
	// format of this label
	// combines the existing labels of the wire group endpoints and
	// Interconnect
	// connections used by this wire in alphabetical order as
	// follows:
	// `ENDPOINT_A+CONNECTION_A1,ENDPOINT_B+CONNECTION_B1`, where:
	//
	//    - ENDPOINT_A and ENDPOINT_B: are the labels
	//    that you entered as map keys when you specified the wire group endpoint
	//    objects.
	//    - CONNECTION_A1 and CONNECTION_B1: are the
	//    labels that you entered as map keys when you specified the wire group
	//    Interconnect objects.
	Label string `json:"label,omitempty"`
	// WireProperties: Output only. [Output Only] Properties of the wire.
	WireProperties *WireProperties `json:"wireProperties,omitempty"`
	// 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 Wire) MarshalJSON() ([]byte, error) {
	type NoMethod Wire
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// WireGroup: A resource that represents a group of redundant wires.
type WireGroup struct {
	// AdminEnabled: Indicates whether the wires in the wire group are enabled.
	// When false, the
	// wires in the wire group are disabled. When true and when
	// there is simultaneously no wire-specific override of `adminEnabled`
	// to
	// false, a given wire is enabled. Defaults to true.
	AdminEnabled bool `json:"adminEnabled,omitempty"`
	// CreationTimestamp: Output only. [Output Only] Creation timestamp
	// inRFC3339
	// text format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`
	// Description: An optional description of the wire group.
	Description string `json:"description,omitempty"`
	// Endpoints: A map that contains the logical endpoints of the wire group.
	// Specify
	// key-value pairs for the map as follows:
	//
	//    - Key: an RFC1035 user-specified label.
	//    - Value: an Endpoint object.
	Endpoints map[string]WireGroupEndpoint `json:"endpoints,omitempty"`
	// Id: Output only. [Output Only] The unique identifier for the resource type.
	// The server
	// generates this identifier.
	Id uint64 `json:"id,omitempty,string"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#wireGroups for wire groups.
	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 withRFC1035.
	// 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"`
	// Reconciling: Output only. [Output Only] Indicates whether there are wire
	// changes yet to be processed.
	Reconciling bool `json:"reconciling,omitempty"`
	// SelfLink: Output only. [Output Only] Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
	// Topology: Output only. Topology details for the wire group configuration.
	Topology *WireGroupTopology `json:"topology,omitempty"`
	// WireProperties: Properties for all wires in the wire group.
	WireProperties *WireProperties `json:"wireProperties,omitempty"`
	// Wires: Output only. The single/redundant wire(s) managed by the wire group.
	Wires []*Wire `json:"wires,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 WireGroup) MarshalJSON() ([]byte, error) {
	type NoMethod WireGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// WireGroupEndpoint: A logical endpoint for the wire group. An endpoint
// represents a metro that
// contains redundant Interconnect connections. A wire group is created
// between two endpoints.
type WireGroupEndpoint struct {
	// Interconnects: A map that contains the redundant Interconnect connections.
	// Specify
	// key-value pairs for the map as follows:
	//
	//    - Key: an RFC1035 user-specified label.
	//    - Value: an Interconnect object.
	Interconnects map[string]WireGroupEndpointInterconnect `json:"interconnects,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Interconnects") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Interconnects") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WireGroupEndpointInterconnect: The redundant Interconnect connections for
// this endpoint.
type WireGroupEndpointInterconnect struct {
	// Interconnect: Required. An Interconnect connection. You can specify the
	// connection as
	// a partial or full URL. If the connection is in a different project from
	// the cross-site network, use a format that specifies the project. See
	// the following examples of partial and full URLs:
	//
	//
	//
	//       global/interconnects/NAME
	//
	//
	//        projects/PROJECT_ID/global/interconnects/NAME
	//
	//     -
	//
	// https://compute.googleapis.com/compute/projects/PROJECT_ID/global/interconnects/NAME
	Interconnect string `json:"interconnect,omitempty"`
	// VlanTags: Required. To configure the wire group for VLAN mode, enter a VLAN
	// tag,
	// which is a number from `2` to `4093`. You can autoallocate a tag by
	// entering `0`. To configure the wire group for port mode, enter `-1`.
	// Review the following guidelines:
	//
	//    - A VLAN tag must be unique for an Interconnect connection across all
	//    attachments and wire groups.
	//    - Both endpoints of a wire must use the same VLAN tag value.
	//    - Single wire and redundant type wire groups must have only one
	//    VLAN tag.
	//    - Port mode pseudowires must have a single VLAN tag with a value of
	//    `-1` for both endpoints.
	//    - Box and cross type wire groups must have two VLAN tags. The first
	//    is for the same-zone pseudowire, and the second is for the cross-zone
	//    pseudowire.
	VlanTags []int64 `json:"vlanTags,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Interconnect") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Interconnect") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WireGroupList: Response for the list request.
type WireGroupList 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 wire group resources.
	Items []*WireGroup `json:"items,omitempty"`
	// Kind: Output only. [Output Only] Type of the resource.
	// Alwayscompute#wireGroups for wire 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 thanmaxResults, 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. [Output Only] Unreachable
	// resources.
	// end_interface: MixerListResponseWithEtagBuilder
	Unreachables []string `json:"unreachables,omitempty"`
	// Warning: [Output Only] Informational warning message.
	Warning *WireGroupListWarning `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 WireGroupList) MarshalJSON() ([]byte, error) {
	type NoMethod WireGroupList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// WireGroupListWarning: [Output Only] Informational warning message.
type WireGroupListWarning 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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 []*WireGroupListWarningData `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 WireGroupListWarning) MarshalJSON() ([]byte, error) {
	type NoMethod WireGroupListWarning
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type WireGroupListWarningData 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 WireGroupListWarningData) MarshalJSON() ([]byte, error) {
	type NoMethod WireGroupListWarningData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// WireGroupTopologyEndpoint: Topology details for a single wire group
// endpoint.
type WireGroupTopologyEndpoint struct {
	// City: Output only. The InterconnectLocation.city (metropolitan area
	// designator) that all
	// interconnects are located in.
	City string `json:"city,omitempty"`
	// Label: Output only. Endpoint label from the wire group.
	Label string `json:"label,omitempty"`
	// ForceSendFields is a list of field names (e.g. "City") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "City") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WireProperties: The properties of a wire.
type WireProperties struct {
	// BandwidthAllocation: The configuration of the bandwidth allocation, one of
	// the following:
	//
	//    - ALLOCATE_PER_WIRE: configures a separate unmetered bandwidth
	// allocation
	//    (and associated charges) for each wire in the group.
	//    - SHARED_WITH_WIRE_GROUP: this is the default behavior, which configures
	//    one unmetered bandwidth allocation for the wire group. The unmetered
	//    bandwidth is divided equally across each wire in the group, but dynamic
	//    throttling reallocates unused unmetered bandwidth from unused or
	// underused
	//    wires to other wires in the group.
	//
	// Possible values:
	//   "ALLOCATE_PER_WIRE" - Configures a separate unmetered bandwidth allocation
	// (and associated
	// charges) for each wire in the group.
	//   "SHARED_WITH_WIRE_GROUP" - This is the default behavior. Configures one
	// unmetered bandwidth
	// allocation for the wire group. The unmetered bandwidth is divided
	// equally
	// across each wire in the group, but dynamic throttling reallocates
	// unused
	// unmetered bandwidth from unused or underused wires to other wires in
	// the
	// group.
	BandwidthAllocation string `json:"bandwidthAllocation,omitempty"`
	// BandwidthUnmetered: The unmetered bandwidth in Gigabits per second, using
	// decimal units. `10`
	// is 10 Gbps, `100` is 100 Gbps. The bandwidth must be greater than 0.
	BandwidthUnmetered int64 `json:"bandwidthUnmetered,omitempty,string"`
	// FaultResponse: Response when a fault is detected in a pseudowire:
	//
	//    - NONE: default.
	//    - DISABLE_PORT: set the port line protocol down when inline probes
	//    detect a fault. This setting is only permitted on port mode
	//    pseudowires.
	//
	// Possible values:
	//   "DISABLE_PORT" - Set the port line protocol down when inline probes detect
	// a fault. This
	// setting is only permitted on port mode pseudowires.
	//   "NONE" - Default.
	FaultResponse string `json:"faultResponse,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BandwidthAllocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BandwidthAllocation") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

func (s WorkloadIdentityConfig) MarshalJSON() ([]byte, error) {
	type NoMethod WorkloadIdentityConfig
	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. [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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 theus-east1 region. For more
// information, readRegions 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 inRFC3339
	// 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. [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 orDOWN.
	//
	// Possible values:
	//   "DOWN"
	//   "UP"
	Status string `json:"status,omitempty"`
	// SupportsPzs: Output only. [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: Output only. 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 thanmaxResults, 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. [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
	//   "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client
	// requests (e.g:
	// regions.list).
	//   "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 ZoneSetNestedPolicyRequest 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 ZoneSetNestedPolicyRequest) MarshalJSON() ([]byte, error) {
	type NoMethod ZoneSetNestedPolicyRequest
	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)
}
